MYSQL基础知识
2019-08-01 本文已影响0人
李静数据分析
一、数据定义语言DDL
操作 | 语法结构 |
---|---|
登陆 | mysql -u root -p root |
创建数据库 | create database 数据库名称 |
删除数据库 | drop database 数据库名称 |
查看所有的数据库 | show databases |
创建表 | create table 表名(字段描述,字段描述……); 字段描述:字段名称 字段类型[约束] |
修改表 | alter table 表名… |
修改表名 | alter table 旧表名 rename to 新表名 或:rename table 旧表名 to 新表名 |
添加字段 | alter table 表名 add [column] 例:alter table user add password varchar(20); |
修改字段名 | alter table 表名 change 字段名称 新字段描述; 例:alter table user change password pwd varchar(20) |
修改字段描述 | alter table 表名 modify 字段名称 字段类型[约束]; 例:alter table user modify pwd int; |
删除字段 | alter table 表名 drop 字段名称; 例:alter table user drop pwd; |
删除表 | drop table 表名 |
切换或者进入数据库 | use 数据库名称 |
查看当前数据库下的所有表 | show tables; |
查看表结构 | desc 表名; |
查看建表语句 | show create table 表名 |
二、数据操作语言DML
操作 | 语法结构 |
---|---|
insert(插入) | 格式一:insert into 表名 values (字段值1,字段值2,,,,,,,;注意:默认插入全部字段,必须保证values后面的内容和表结构顺序保持一致 字段类型为数字可以省略引号,引号建议使用单引号;格式二:insert into 表名(字段名,字段名,)values (字段值,字段值,) |
update(更新) | update 表名 set 字段名=字段值,字段名1=字段值1….[where 条件]; update user set username=’jerry’ where username=’jack’; |
delete(删除) | delete from 表名[where 条件] |
三、数据查询语言DQL
操作 | 语法结构 |
---|---|
查看所有 | select * from 表名 |
查看指定字段 | select 字段名,字段名from 表名 |
去重操作 | select distinct 字段名,字段名 from 表名 |
通配符 | 1.百分号通配符(%):可以表示任何字符出现任何次数 2.下划线通配符(_):只能匹配单个字符 |
排序查询 | select * from 表名 order by 字段名; asc 升序 desc 降序 select * from 表名 where 条件 order by 字段名 asc; |
聚合函数 | sum()求和 avg()平均数 max() min() count()计数求和; 对一列进行计算 返回值是一个 ,特点忽略null值, select sum(字段名) from 表名;select avg(字段名) from 表名; round(值,保留小数位)四舍五入 select count(*) from 表名 |
分组 | 使用group by 在where 后面 order by 前面 ;select cno,count(*) from 表名 group by con; select cno,sum(字段名) from 表名 group by cno having sum(字段名)>200; 注意: where 和having 的区别 1,where 是对分组前的数据进行过滤 having 是对分组后的数据进行过滤 2,where 后面不能使用聚合函数,having可以 |
联结表 | 联结表:两张表通过共有的一列相互联系,可联结;方法一:select 列名1 ,列名2 from 表1 inner join 表2 on 表1.共有列 = 表2.共有列 (推荐使用);方法二:select 列名1,列名2 from 表1,表2 where 表1.共有列 = 表2.共有列 (此处使用完全限定列名) |
组合查询 | 关键词:union , 用来组合数条SQL语句格式:select 列名1,列名2 from 表名 where 条件1 union select 列名1, 列名2 from 表名 where 条件2;注:每个查询中的列名必须相同,顺序可不同,union语句相比多个语句会取消重复行,若要求不取消初年复行,则用union all 即可 |
四、数据控制语言DCL
- 数据控制语言DCL用来授予或回收访问数据库的某种特权,并控制数据库操纵事务发生的时间及效果,对数据库实行监视等。如:
1) GRANT :授权
2)COMMIT[WORK]:提交
五、数据类型
- 数值数据类型:int、decimal(m,d)、float、tinyint、smallint、mediumint、double……
- 字符串数据类型:char(m)、varchar(m)、text、tinytext、……
- 日期数据类型:timestamp 格式:YYYYMMDD HHMMSS 混合日期和时间值 (时间戳)、date 日期值 、 time 时间值或持续时间、year 年份值 、 datetime 混合日期和时间值
六、函数
类型 | 函数 |
---|---|
文本处理 | substring() 、 left()、 right()、len()、lower()、upper()、ltrim()、 rtrim()、soundex() |
日期、时间 | curdarte()、rurtime() 、 date()、datediff() 、day() 、 dayofweek()、hour()、minute() 、month() 、year() |
数值处理 | ABS()、COS()、SIN() 、TAN()、EXP() 、 PI() 、SQRT() |