约束
-
非null约束
stuname varchar(20) not null
-
默认约束
stuaddress varchar(100) default '中国'
-
唯一约束
stuname varchar(20) not null unique
更改表
-
添加一列
alter table t_student(表名) add tel(列名) char(20);
-
删除一列
alter table t_student(表名) drop column tel(列名);
-
添加唯一约束
alter table t_student(表名) add constraint uk_username unique(约束名)(usercode(约束对象名));
-
添加主键约束
alter table t_user(表名) add constraint pk_t_user_id(约束名) primary key t_user(id)(约束对象名);
-
添加默认约束
alter table t_user(表名) alter password set default '123456';(约束内容)
-
添加非null约束
alter table t_teacher(表名) modify column uname varchar(20)(约束对象名) not null
-
重命名表
rename table t_student(旧表名) to t_stu;(新表名)
-
改变某一列的值update
update t_student(表名)
set
stuname = 'Alex',age = '26'(改变值)
[where id = 1];(改变值的条件)
insert
一次性插入多条语句
insert into t_student(stuname,stuage,stuaddress)
values
('tom','23','北京'),
('jerry','25','伤害'),
('hanks','21','杭州')
- insert语句中列的数量和值的数量必须相同
- 每个值的数据类型、精度和小数位数必须和列的要求相匹配
- 列的值要符合列的约束
- 如果列有默认值,可以使用关键字default来插入默认值
运算符
逻辑运算符
- = 等于
- <>,!= 不等于
- < 小于
- >大于
- <=小于等于
- >=大于等于
- between在指定的两值之间
关系运算符
- and
- or
- not
删除
delete
delete from t_student(表名) where id =1;(删除的条件)
如果不加条件会删除所有数据
truncate
truncate table t_student;
TRUNCATE TABLE用于删除表中的所有记录,但该语句不能包含WHERE语句,该操作运行速度比
DELETE语句快(慎用)。
表设计的三大范式
- 确保每列的原子性
- 在第一范式的基础上,确保每列都和主键相关
- 在第二范式的基础上,确保每列都和主键直接相关,而不是间接相关。
外键
- 有外键约束的前提下
- 子表中外键列中添加的数据必须在主表的主键中存在
- 外键列的数据类型及长度必须和主表的主键的数据类型及长度相同
- 删除主表数据时,如果有子表引用,则删除失败
创建外检
alter table t_user(表名) add schoolid int(外键名及类型);
添加外键约束
alter table t_user(表名) add constraint fk_student_cus(约束名) foreign key(schoolid)(外键名)
fererecens t_school(id);(对应的表的主键名)
删除外键
alter table t_user drop foreidn ker fk_stident_cus(外键名)
文本处理函数
- left()返回左边指定长度的字符
SELECT prod_name,LEFT(prod_name,2) FROM products;
- right()返回右边指定长度的字符
SELECT prod_name,RIGHT(prod_name,5) FROM products;
- length()返回字符串的长度
SELECT prod_name,LENGTH(prod_name) FROM products;
- lower()将字符串转换为小写
SELECT prod_name,LOWER(prod_name) FROM products;
- upper()将字符串转换为大写
SELECT prod_name,UPPER(prod_name) FROM products;
- ltrim()去掉字符串左边的空格
SELECT prod_name,LTRIM(prod_name) FROM products;
- rtrim()去掉字符串右边的空格
SELECT prod_name,RTRIM(prod_name) FROM products;
- trim()去掉左右两边的空格
SELECT prod_name,TRIM(prod_name) FROM products;
- 字符串连接
SELECT CONCAT('I love ',cust_name) AS 'Message' FROM customers;
日期和时间函数
函数 | 用途 | 函数 | 用途 |
---|---|---|---|
curDate() | 返回当前的日期 | cuiTime() | 返回当前时间 |
now() | 返回当前的时间和日期 | date() | 返回日期时间的日期部分 |
time() | 返回日期时间的时间部分 | day() | 返回日期时间的天数部分 |
dayofweek() | 返回一个日期对应星期数 | hour() | 返回时间的小时部分 |
minute() | 返回时间的分钟部分 | month() | 返回日期的月份部分 |
second() | 返回时间的秒部分 | year() | 返回日期的年份部分 |
datediff() | 计算两个日期之差 | addDate | 添加一个日期(天数) |
聚合函数
聚合函数常用于统计数据使用
聚合函数统计时忽略值为null的记录
- 查询商品价格最高的产品
SELECT MAX(prod_price) FROM products;
- 查询商品价格最低的产品
SELECT MIN(prod_price) FROM products;
- 查询商品价格总合
SELECT SUM(prod_price) FROM products;
- 查询商品平均价格
SELECT AVG(prod_price) FROM products;
- 查询客户数量
SELECT COUNT(*) FROM customers;
SELECT COUNT(cust_email) FROM customers;
当count函数里边填具体参数(非*)时,参数列表中含有null值的将不参数总和计算
网友评论