SQL语句主要可以划分为以下三个类别:
- DDL(Data Definition Languages)语句:数据定义语言,这些语句定义了不同的数据段、数据库、表、列、索引等数据库对象。常用的关键字主要包括create、drop、alter等。
- DML(Data Manipulation Language) 语句:数据操纵语句,用于添加、删除、更新和查询数据库记录,并检查数据完整性,常用的关键字主要包括 insert、delete、update、select。
- DCL(Data Control Language)语句:数据控制语句,用于控制不同数据段直接的许可和访问级别的语句。这些语句定义了数据库、表、字段、用户的访问权限和安全级别。主要的关键字包括 grant、revoke等。
DDL语句
- 登陆数据库 mysql -uroot -p (登陆名为root)
- 创建数据库 create database test1;
- 选择数据库 use test1;
- 查看数据表 show tables;
- 删除数据库 drop database test1;
- 创建表 create table emp(ename varchar(10),hiredate date, sal decimal(10,2),deptno int(2));
- 查看表定义 desc emp;
- 查看建表语句 show create table emp \G; (\G时的记录能够按照字段竖向排列)
- 删除表 drop table emp;
- 修改表 alter table emp modify ename varchar(20);
- 增加表字段 alter table emp add column age int(3);
- 删除表字段 alter table emp drop column age;
- 字段改名 alter table emp change age age1 int(4); (注意modify和change的区别)
- 添加到某个位置
- alter table emp add birth date after ename;
- alter table emp modify age int(3) first; ( age 字段放到了最前面)
- 注意 CHANGE/FIRST|AFTER COLUMN 这些关键字都属于MySQL在标准SQL上的拓展,在其他数据库上不一定适用
- 更改表名 alter table emp rename emp1;
MySQL安装时自动创建了四个数据库
- information_schema:主要存储了系统中的一些数据库对象信息,比如用户表信息、列信息、权限信息、字符集信息、分区信息等。
- cluster:存储了系统的集群信息。
- mysql:存储了系统的用户权限信息。
- test:系统自动创建的测试数据库,任何用户都可以使用。
DML语句
- 插入记录 insert into emp(ename,hiredate) values('zzx1','2018-01-01'),('zzx2','2018-01-03');
- 也可以不用指定字段名称,但是values后面的顺序应该和字段的排列顺序一致。
- 含空段、非空但是含有默认值的字段、自增字段,可以不用在insert后的字段列表里面出现。这些没写的字段可以自动设置为NULL、默认值、自增的下一个数字。
- 更新记录
- update emp set sal=4000 where ename='www';
- update emp a, dept b set a.sal = a.sal*b.deptno ,b.deptname=a.ename where a.deptno=b.deptno;
- 删除记录
- delete from emp where ename ='dony';
- delete a,b from emp a ,dept b where a.deptno=b.deptno and a.deptno=3;
- 查询记录