Day36
MySQL基础到这里已经学完了,接下来是JDBC了。
/*
常见约束:
说明:用于限制表中字段的数据的,从而进一步保证数据表的数据是一致的、准确的、可靠的
NOT NULL 非空:用于限制该字段为必填项
default 默认: 用于限制该字段没有显示插入值,则直接显示默认值
primary key 主键:用于限制该字段值不能重复(具备唯一性),设置为主键列的字段默认不能为空
unique 唯一 :用于限制该字段值不能重复
对比: 字段是否可以为空 一个表可以有几个
主键 × 1个
唯一 √ n个
check 检查 :用于限制该字段值必须满足指定条件
语法 check(age between 1 and 100),mysql不支持这种语法
foreign key 外键:用于限制两个表的关系,要求外键列的值必须来自主表的关联列
要求:1.主表的关联列和从表的关联列的类型必须一致,意思一样,名称无要求
2.主表的关联列要求必须为主键。
*/
#案例:添加约束
DROP TABLE IF EXISTS stuinfo1
CREATE TABLE IF NOT EXISTS stuinfo1(
stuid INT PRIMARY KEY,#添加主键
stuname VARCHAR(20) UNIQUE NOT NULL,#添加了唯一+非空
stugender CHAR(1) DEFAULT '男',#添加了默认值男
email VARCHAR(20) NOT NULL,
age INT CHECK(age BETWEEN 0 AND 100)#添加了检查约束,mysql不支持
)
#二、修改表
语法: ALTER TABLE 表明 ADD|MODIFY|CHANGE|DROP COLUMN 字段名 字段类型[字段约束]
#1.修改表名
ALTER TABLE stuinfo1 RENAME TO students
#2.添加字段
ALTER TABLE students ADD COLUMN borndate TIMESTAMP NOT NULL
#3.修改字段名
ALTER TABLE students CHANGE COLUMN borndate brithday DATETIME NULL
#4.修改字段类型
ALTER TABLE students MODIFY COLUMN brithday TIMESTAMP
#5.删除字段
ALTER TABLE students DROP COLUMN brithday
#三、删除表
DROP TABLE IF EXISTS students
#四、复制表
CREATE TABLE newtable LIKE stuinfo1
#复制表的结构加数据
CREATE TABLE newtable2 SELECT*FROM girls.`admin`
#案例:复制employees表中的last_name,department_id,salary字段复制到新表emp中,但不复制数据
CREATE TABLE emp1
SELECT last_name,department_id,salary
FROM myemployees.`employees`
WHERE 1=2
#测试
#1.使用分页查询,查询员工信息表中部门为50号的工资最低的五名员工信息
SELECT *
FROM employees
WHERE department_id =50
ORDER BY salary ASC
LIMIT 0,5
#2.使用子查询实现城市为Toroto的,且工资>10000的员工姓名
