## SQL分类:
DDL 数据定义语句(create drop alter等)
DML 数据操纵语句
DCL 数据控制语句
**主键特性:唯一性约束 非空约束**
## 用法: ##
**选择:**
1 whow databases;(显示数据库)
2 use 数据库名称;(选择要操作的数据库)
3 show tables;(查看数据库下面的表)
**查询:**
1 select * from 要查询的表名;
2 select a.empNo,a.empName from emp a;select 别名.字段名,别名.字段名 from 表名 别名;
3 select * from emp a where a.empId > 4; select 所有元素 from 表名 别名 where 条件;
**创建数据库:**
create database 数据库名称;
**删除数据库:**
drop database 数据库名称;
**创建表:**
create table 表名(字段名称 字段类型 (Sno int));
auto_increment(自动产生一个编号) primary key(主键的设置) default 值(默认约束)
**查询表信息:**
1. desc 表名;查询表的字段信息.
2. show create table 表名;查看该表的创建表的SQL语句.
**操作表结构:**
1. 添加表字段: alter talbe 表名 add 字段名 字段类型;
2. 删除表字段: alter talbe 表名 drop column 列的字段名;
3. 修改字段名: alter talbe 表名 change 原字段名 新的字段名 字段类型;
4. 修改表字段类型: alter table 表名 modify 字段名 字段类型;
5. 修改表名: alter talbe 表名 rename 新的表名;
6. 删除表: delete from 表名;
**新建外键: **
foreign key (子表字段名) references(来源于) 父表名 父表字段名
示例: create table emp(empNo int,foreign key (empNo) references dept (deptNo));
**插入数据:**
insert into 表名(字段1,字段2,字段3) values (字段1值,字段2值,字段3值),(字段1值,字段2值,字段3值);
示例: insert into student(SName,SAge) values ('张一',21),('张二',22);
insert into 表名 values (字段1值,字段2值,字段3值),(字段1值,字段2值,字段3值);
**修改数据:**
update 表名 别名 set 别名.字段名 = 值 where (条件) ;
update student s set s.SName = '年轻人' where s.SAge >= 20 and s.SAge<=30;
**示例题: **
1 新建表student:要求学号在1-20之间,年龄在10-40之间
create table student(SNO int auto_increment primary key,SName varchar(10) ,SAge int );
2.删除姓名为null的记录
delete from student where SName is NULL; // 因为上面赋值时没有单引号,这里就用is,如果上面用了单引号,这里则为SName = 'NULL'.
3 添加表内容:
insert into student(SName,SAge) values ('张一',21),('张二',22),('张三',23),('张四',24),('张五',25),('张六',26),('张七',27),('张八',28);
4 向学生表中的学号和年龄插入1条记录
insert into student(SName,SAge) values (null,29);
5.为姓名列添加默认约束
alter table student modify SName varchar(10) default '无名'; // 用modify 添加默认约束
alter table student change SAge SAge int default 0; // 用change 添加默认约束
6 修改
update student s set s.SName = '中年人' where s.SAge > 30;
update student s set s.SName = '年轻人' where s.SAge >= 20 and s.SAge<=30;
update student s set s.SName = '未成年人' where s.SAge < 20;
7.删除学号小于3的记录
delete from student where SNo < 3;
delete from student where SName =null;