1.查看系统中都存在哪些数据库(show databases;)
2.在查看系统中已有的数据库后,可以用(use dbname)选择对应的数据库
3.在选择对应的数据库后,查询该数据库下面的所有的表(show tables)
二、删除数据库
删除数据库的语法:drop databse dbname;
三、创建表
语法:create table tablename(column_name_1 column_type_1 constraints,column_name_2 column_type2 constrationts)
mysql的表名是以目录形式存储在磁盘上,表名的字符可以是任何目录名允许的字符。
column_name是列名
column_type是列的数据类型
constrationts是列的约束条件
1.查看表定义:desc tablename
2.查看创建表的SQL语句:show create table tablename
四、删除表
删除表的语法:drop table tablename;
五、修改表
aleter 语法 | 说明
---|---
alter table tablename modify columnname newColumnType | 修改表字段的类型(==modify 不能更改字段名称==)
alter table tablename add newColumnname newColumnType| 增加表字段
alter table tablename drop oldCloumnname|删除表字段
alter table tablename change oldColumname newColumnname newColumntype|修改字段的名称及类型
alter table tablename rename (to) newtablename|修改表名称
修改字段的排列顺序
在alter的语法后面都有[first\after columnname]可选项
select distinct name from user; 查询不重复记录
select * from user where id=1; 条件查询
select * from user order by id desc 排序(desc倒序、asc正序)
select * from user order by id desc limit 0,2 根据id进行倒序,0代表从第一个开始,2代表查询出来的个数 select ...[limit offset_start,row_count]
select count(1) from user 聚合函数count(),其他的还有sum()/max()/min()
group by 表示要进行分类聚合select name,count(1) from user group by name
having 表示对分类后的结果再进行条件过滤 select name,count(1) from user group by name having count(1)>2
5.表连接
1.内连接(仅选出两张表中互相匹配的数据)
select cno,cname,sname from student inner join course on cno=sno; select cno,cname,sname from student,course where cno=sno;2.外连接
外连接又区分:
1.左连接(left join):包含左边表的所有记录,右边没有的为Null
2.右连接(right join):包含右边表的所有记录,左边没有的为null
6.子查询
子查询关键字说明in 存在
not in 不存在
= 等于
!= 不等于
exists 存在
not exists 不存在
-7.记录联合
语法:
1.select * from t1 union all select * from t2;
2.select * from t1 union select * from t2;
union all与union的区别:
union all是把结果集直接合并在一起,而union是将union all后的结果进行一次distinct,去除重复后的结果
grant与revoke
三、MySQL支持的数据类型
数值类型
常用的数值类型字节说明int 4 有个额外的额属性Auto_Increment
bigint 8
float 4
double 8
decimal(M,D) M+2 M代表精度,D代表标度