SQL分类
- DDL(Data Definition Language):数据定义语言,定义了不同的数据段、数据库、表、列、索引等数据库对象的定义。常用的语句关键字主要包括create、drop、alter等。
- DML(Data Manipulation Language):数据操作语言,用于添加、删除、更新和查询数据库记录,并检查数据完整性,常用的语句关键字主要包括insert、delete、update和select等。
- DCL(Data Control Language):数据控制语言,用于控制不同数据段直接的许可和访问级别的语句。这些语句定义了数据库。表、字段、用户的访问权限和安全级别。主要的语句关键字包括grant、revoke等。
DDL:数据定义语言
创建数据库
create database 数据库名;
如:create database db;
标准版:create database 数据库名 if not exist;
查看数据库
show databases;
创建数据库之前要使用数据库
user 数据库名;
如:user db;
显示数据库中的表
show tables;
删除数据库
drop database 数据名;
如:drop database db;
创建表
create table 表名(列名1 类型 约束,列名2 类型 约束……);
如:create table student(id int(5) primary key,name varchar(20));
查看表
desc 表名;
如:desc student;
查看创建表的sql语句
show create table 表名 \G;
如:show create table student \G;
删除表
drop table 表名;
如:drop table student;
修改表
- 修改表类型:alter table 表名 modify 列名 类型;
如:修改列名name的类型为varchar(50);
alter table student modify name varchar(50); - 增加表字段
alter table 表名 add 列名 类型;
如:alter table student add age int(5); - 删除表字段
alter table 表名 列名;
如:alter table student age; - 字段改名
alter table 表名 change 列名 新列名 类型;
如 alter table student change name sname varchar(100); - 修改字段的排列顺序
alter table 表名 (add/modify/change) 列名 after/first 列名
如:添加新列sex在name之前或之后;
alter table student add sex varchar(2) after/fist name;
如:修改sex,将它放在最前面
alter table student modify sex varchar(10) first;
修改表的名字
alter table 表名 rename 新表名;
如:alter table student rename stu;
DML 数据操作语言
DML操作是指对数据库中表记录的操作,主要包括表记录的插入(insert)、更新(update)、删除(delete)和查询(select)
插入记录(insert)
- insert into 表名(列名1,列名2…..)values(值1,值2);
注意:值得顺序要和列名的顺序保持一致。
如:insert into student(name)values(’zhangsan’);
-insert into 表名 values(值1.。);
注意:如果不写列名,values的值要和表的列名保持一致。
-对于含有可空字段、非空但是含有默认值的字段、自增字段,可以不用在insert后的字段列表里面出现,没写的字段对应的值自动设置为NULL、默认值、自增的下一个数字。
-在MySQL中,可以一次性插入多条记录
insert into 表名(列名)values(值1),(值2),(值3);
更新记录(update:修改)
- update 表名 set 列名=新值 where 列名=值;
如:修改student中id为1的名字
update student set name=’李四’ where id = 1;
-同时更新多个表(表之间有关联)
update 表1,表2 set 表1.列名=值,表2.列名=值 where 条件(列名=值)
删除记录(delete)
注意:如果不加where条件的话会把所有记录删除。
delete from 表名 where 列名=值
注意:删除的是符合where后列名=值条件的一条数据。
如:删除student中id=2的数据
delete from student where id=2;- delete也可以删除多个表的数据;(表之间有联系)
delete 表1,表2 from 表1,表2 where 条件;
查询记录(select)
- 查询所有数据:(通配符 * 代表所有字段,也可以把所有字段写出来)
- 基础查询:
select * from 表名 ;
如:select * from student; - 按条件查询每条数据
select * from 表名 where 条件;
如:查询id为2的数据
如:select * from student where id= 2;