MySql基本语句

-建表、删除表

CREATE TABLE 数据表名称(字段1 类型1(长度),字段2 类型2(长度) …… )

例:CREATE TABLE tab01(name varchar(50),datetime default now());

DROP TABLE 数据表名称 (永久性删除一个数据表)

-更改表结构

ALTER TABLE table_name ADD COLUMN column_name DATATYPE 加列

ALTER TABLE table_name ADD PRIMARY KEY (column_name) 添加主键

ALTER TABLE table_name DROP PRIMARY KEY (column_name)

CREATE INDEX index_name ON table_name (column_name) 建索引

DROP table_name

DROP index_name

-基本查询

sql= Select * From 数据表 Where 字段名= 字段值 Order By 字段名 [desc];

sql=  Select * From 数据表 Where 字段名 like '%字段值%' Order By 字段名 [desc];

sql=  Select top 10 * From 数据表 Where 字段名 Order By 字段名 [desc];

sql=  Select * From 数据表 Where 字段名 in ('值1','值2','值3');

sql=  Select * From 数据表 Where 字段名 between 值1 and 值2;

-更新操作

sql= update 数据表 set 字段名= 字段值 Where 条件表达式;

sql=  update 数据表 set 字段1=  值1,字段2=  值2 …… 字段n=  值n Where 条件表达式;

-删除操作

sql= delete From 数据表 Where 条件表达式;

sql=  delete From 数据表  (将数据表所有记录删除);

sql=  truncate Table 表名;    

-插入数据

sql= insert into 数据表 (字段1,字段2,字段3 …) values (值1,值2,值3 …);

sql= insert into 目标数据表 select * from 源数据表  (把源数据表的记录添加到目标数据表);

-聚合函数

AVG(字段名) 得出一个表格栏平均值

COUNT(*|字段名) 对数据行数的统计或对某一栏有值的数据行数统计

MAX(字段名) 取得一个表格栏最大的值

MIN(字段名) 取得一个表格栏最小的值

SUM(字段名) 把数据栏的值相加

引用以上函数的方法:

sql= select sum(字段名) as 别名 from 数据表 where 条件表达式

set rs= conn.excute(sql)

用 rs(别名) 获取统的计值,其它函数运用同上

-连接语句

-Inner Join & Left Join/Right join。内连接,只连接匹配的行;左连接= 左表所有行+右表符合ON的匹配行(无的显示为Null)。性能上,尽量用inner join,避免 LEFT JOIN

-union & union all,前者不显示重复的值,UNION ALL 命令会列出所有的值(包括重复的)

1.尽量少用where条件:

select * from A

  inner join B on B.name =  A.name

  left join C on C.name =  B.name and C.status>1

  left join D on D.id =  C.id and D.status= 1

2.SELECT column_name(s) FROM table_name1 UNION ALL SELECT column_name(s) FROM table_name2;

-分组、排序
-Group by,对select查询出来的结果集按照某个字段或者表达式进行分组,获得一组组的集合

-Order by,排序asc、desc

-Having

-用于对where和group by查询出来的分组经行过滤,查出满足条件的分组结果

-having只能用于group by(分组统计语句中)

-having 子句中的每一个元素也必须出现在select列表中

-having语句可以使用聚合函数(sum、avg等),而where不使用

-exists

-exist和in,前者强调的是是否返回结果集,不要求知道返回什么;

exists 与 in 最大的区别在于 in引导的子句只能返回一个字段

-true用Exists,false用Not Exists

示例:

查询所有选修了“C1”课程的学生名:

SELECT 姓名 FROM 学生表 WHERE EXISTS   

( SELECT * FROM 选课表 WHERE 学生表.学号 =  选课表.学号 AND 课程号 =  'C1'  );

解释:先在外层查询中取“学生表”的第一行记录,用该记录的相关的属性值(在内层WHERE子句中给定的)处理内层查询,若外层的WHERE子句返回“TRUE”值,则这条记录放入结果表中。然后再取下一行记录;重复上述过程直到外层表的记录全部遍历一次为止

-多语句执行顺序
-执行顺序:select –>where –> group by–> having–>order by

-Case语句

-需要从数据源上 直接判断数据显示代表的含义的时候 ,就可以在SQL语句中使用 Case When

-Case具有两种格式:

(1)简单Case函数:when  条件值1  then  选择项1 ;

(2)Case搜索函数:when  列名=  条件值1  then  选择项1;

示例:
(1)CASE gender WHEN '0' THEN '男' WHEN '1' THEN '女' ELSE '其他' END CASE;

select (case sex when 'MALE' Then '男' else '其他' end) from member;

(2)update  employee

set        e_wage =

case

when  job_level =  '1'    then e_wage*1.97

when  job_level =  '2'  then e_wage*1.07

when  job_level =  '3'  then e_wage*1.06

else    e_wage*1.05

end

-其他

日期-mysql:DATE_FORMAT(date,format)

select * from product where Date_Format(start_date, '%Y-%m-%d')='2018-04-08'; 

-索引

使用索引,可以提高查询性能,类似书本的目录;

一般以下情况可以使用索引:

1.在经常需要搜索的列上,可以加快索引的速度;

2.主键列上可以确保列的唯一性;

3.在表与表的而连接条件上加上索引,可以加快连接查询的速度;

4.在经常需要排序(order by),分组(group by)和的distinct 列上加索引;

使用索引的缺点:需要动态维护、占用物理空间、多种索引组合会导致索引文件膨胀很快;

示例:

CREATE INDEX account_Index ON `award`(`account`);

-视图

视图,是一个虚拟表,其内容由查询定义;

视图的好处:

1.对数据库重构却不影响程序的运行;

2.提高了安全性能,可以对不同的用户,设定不同的视图;

3.让数据更加清晰,想要什么样的数据,就创建什么样的视图;

4.提高了重用性, 类似于函数的调用;

示例:

CREATE VIEW view_name as SELECT....;

-Show

-show的常用方式:

1. show tables或show tables from database_name; 显示当前数据库中所有表的名称

2. show databases; 显示mysql中所有数据库的名称

3. show columns from database_name.table_name; 显示表中列名称

4. show grants for user_name; 显示一个用户的权限,显示结果类似于grant 命令

5. show index from table_name; 显示表的索引

6. show status; 显示一些系统特定资源的信息,例如,正在运行的线程数量

7. show variables; 显示系统变量的名称和值

8. show processlist; 显示系统中正在运行的所有进程

9. show [storage] engines; --显示安装后的可用存储引擎和默认引擎

10. show privileges; 显示服务器所支持的不同权限

11. show create database database_name; 显示create database语句

12. show create table table_name; 显示create table 语句

13. show engines; 显示安装以后可用的存储引擎和默认引擎

14. show innodb status; 显示innoDB存储引擎的状态

15. show logs; 显示BDB存储引擎的日志

16. show warnings; 显示最后一个执行的语句所产生的错误、警告和通知

17. show errors; 只显示最后一个执行语句所产生的错误

-其他


show global variables; 查询所有的全局变量

show variables;  查询所有的会话变量
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 204,530评论 6 478
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 86,403评论 2 381
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 151,120评论 0 337
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 54,770评论 1 277
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 63,758评论 5 367
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,649评论 1 281
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 38,021评论 3 398
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,675评论 0 258
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 40,931评论 1 299
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,659评论 2 321
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,751评论 1 330
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,410评论 4 321
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 39,004评论 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,969评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,203评论 1 260
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 45,042评论 2 350
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,493评论 2 343

推荐阅读更多精彩内容

  • 一、DDL 语句(Data Definition Languages,数据定义语言) 这些语句定义了不同的数据段、...
    AugustWu阅读 2,421评论 1 0
  • Mysql-基础语法 导语 本博文主要是简述选择数据库和对表内容的增、删、改和查的一些基本语法 USE 语法: U...
    SolaTyolo阅读 742评论 0 0
  • 很遗憾缺席了南宁的大组会,因为大雪,无法前行,想想楚然和清文每次都那么远从南宁赶到武汉来,而自己连唯一的一次南宁之...
    天文向上阅读 164评论 1 3
  • “当利润达到10%时,便有人蠢蠢欲动;当利润达到50%的时候,有人敢于铤而走险;当利润达到100%时,他们敢于践踏...
    新观野阅读 334评论 0 0