数据库 DDL增强"/>
10.19 数据库 DDL增强
#-修改表名1--alter table表名rename新表名;
ALTER table test01 RENAME student;
#- 更改字段-alter table表名change列名 新列名数据类型;
alter table student CHANGE age bbub int;s
# change 修改数据类型
alter table student change bbub bbub int(16);
#-添加列-alter table表名add列名类型;
alter table student add a VARCHAR(10);
#a-删除列-lter table表名drop列名;
alter table student drop a;
# -modify 更改新的列数据类型-alter table表名modify列名新数据类型;
ALTER TABLE student modify bbub varchar(12);
约束
创建时新加,
唯一约束unique
1.创建表格时
#unique create table student01(`name` varchar(5),id int UNIQUE // 创建表格时添加唯一)
2.创建完表之后,添加约束
#unique create table student01(`name` varchar(5),id int )alter TABLE student01 add unique(id) //表创建完成使用alter 添加约束唯一
非空约束,默认约束
1.在创建时,添加约束
create table temp2(id int not null,`name` varchar(30) default 'abc',sex varchar(10) not null default '男');
2.创建完表之后,添加约束
alter table temp3 modify id int not null ;
alter table temp3 modify name varchar(30) default 'abc';
alter table temp3 modify sex varchar(10) not null default '男';
主键自增
1.在创建时添加约束
CREATE TABLE t_order(
id int AUTO_INCREMENT PRIMARY KEY,
nun int,
addr VARCHAR(50),
name VARCHAR(10),
phone CHAR(11)
)
2.创建完表之后,添加约束
alter table person5 modify id int auto_increment;
//设置自增起始值
alter table person6 auto_increment=10000;
外键 /物理外键
创建表时添加外键约束
create table teacher(id int ,name varchar(20),primary key (id) ); create table student (id int ,name varchar(20),teacher_id int ,primary key (id),foreign key (teacher_id) references teacher(id) );
2.创建完表之后,添加外键约束
alter table student1 add foreign key (teacher_id) references teacher1 (id);
定义: 一个表中的外键是另一个表中的主键
目中不允许加物理外键, 只加逻辑外键。
逻辑外键 : 就是不使用外键, 写上就行。
条件判断
#select 列限定 from 表限定 where A表达式 and B表达式; and且,和,的意思,
select *from student WHERE name='张三' AND score>91;
#select 列限定 from 表限定 where A表达式 or B表达式; or 或的意思,
select *from student WHERE name='张三' or score>91;
#select 列限定 from 表限定 where 列名 between 值1 and 值2; between and 在...之间
select *from student WHERE score BETWEEN 95 AND 1000;
#select 列限定 from 表限定 where 列名 in(值1,值2....); in 写谁找谁
select *from student WHERE score in(98,97);
#select 列限定 from 表限定 where 列名 like '值' % 匹配任意个数的任意字符_ 匹配单个任意字符;
select *from student WHERE score like '_9%';
#order by 排序
#select 列限定 from 表限定 order by 列名 asc/desc;
# desc 倒叙 asc 正序
SELECT * FROM student ORDER BY score DESC
#限制条数,通常和order by一起使用,因为我们使用排序之后,再去获取前几条数据,比较有价值,比如成绩前三名
#select 列限定 from 表限定 limit 条数;
select *FROM student LIMIT 1;
#select 列限定 from 表限定 limit 开始值(不包含) ,条数;
select *from student LIMIT 1,3;
group by 组函数
count(*) : 总条数
#count(*) : 总条数
select COUNT(*)as '总条数' FROM student WHERE id;
max(字段名) : 最大值
#max(字段名) : 最大值
select max(score) as'最大值' FROM student WHERE score;
min(字段名) : 最小值
#min(字段名) : 最小值
select min(score) as'最小值' FROM student WHERE score;
avg(字段名) : 平均值
#avg(字段名) : 平均值
select avg(score) as'平均值' FROM student WHERE score;
sum(字段名) : 总和
#sum(字段名) : 总和
select sum(score) as'总和' FROM student WHERE score;
常用函数:
#select char_length('中国');返回字符个数。 select CHAR_LENGTH('武正旭'); #select length('中国');返回字符所占字节数,MySQL中,一个UTF8编码的汉字占3个字节 SELECT length('中国') #select concat( '=', 'a', 'b', 'c');拼接符 select CoNCAT_WS ('|','a','v','g'); 第一个字符是分割符 #select upper('abcd');转成大写 select upper('acas') #select lower('ABCD');转小写 select lower('ABCD') #select substring( '系统信息类', 1, 3 );返回 系统信。第2个参数 select SUBSTRING('欢乐麻将',1,2);
Having 过滤
having:表限定>行限定>列限定
having 可以使行限定 最后执行
union 去重
union all 不去重
更多推荐
10.19 数据库 DDL增强
发布评论