# 生成18随机身份码for i inrange(0,8):
sql ="""UPDATE employee SET
idcard = RPAD('"""+str(int(np.random.rand()*(10**18)))+"""',18,'0')
WHERE id = """+str(111+i)+""";"""
cur.execute(sql)
conn.commit()
cur.fetchall()
流程控制函数
函数关键字
作用
IF(value,t,f)
如果value为true,则返回t,否则返回f
IFNULL(value1,value2)
如果value1不为空,返回value1,否则返回value2
CASE WHEN [VAL1] THEN [res1] … ELSE [default] END
如果val1为true,返回res1,…否则返回默认值
CASE [expr] WHEN [val1] THEN [res1] … ELSE [default] END
如果expr的值等于val1,返回res1,…否则返回默认值
例:
sql ="""SELECT name,
(CASE gender WHEN '女' THEN '美女' WHEN '男' THEN '帅哥' ELSE '外星人' END) as '性别'
FROM employee;"""
cur.execute(sql)
cur.fetchall()
SQL约束
约束是作用于表中字段上的规则,用于限制存储在表中的数据
约束保证数据库中数据的正确性、有效性和完整性
可以在创建表、修改表时添加约束
约束类别
约束类别
关键字
作用
非空约束
NOT NULL
该字段不能为NULL
唯一约束
UNIQUE
保证该字段的所有数据都是唯一的
主键约束
PRIMARY KEY
主键是一行数据的唯一标识
默认约束
DEFAULT
保存数据时,若未指定该字段的值,则采用默认值
检查约束
CHECK
保证字段值满足某一条件
外键约束
FOREIGN KEY
让两张表数据之间建立连接,保证数据的一致性
例:
sql ="""
CREATE TABLE user(
id INT PRIMARY KEY AUTO_INCREMENT COMMENT '主键',
name VARCHAR(10) NOT NULL UNIQUE COMMENT '姓名',
age INT CHECK(age > 0 AND age <= 120) COMMENT '年龄',
status char(1) DEFAULT '1' COMMENT '状态',
gender char(1) COMMENT '性别',
dept_id INT COMMENT '部门ID',
update_time DATETIME COMMENT '更新数据时间',
create_time DATETIME COMMENT '创建用户时间'
)COMMENT '用户表';
"""
cur.execute(sql)
conn.commit()
cur.fetchall()
sql ="""
ALTER TABLE user ADD CONSTRAINT fk_emp_dept_id FOREIGN KEY(dept_id)
REFERENCES dept(id) ON UPDATE CASCADE ON DELETE SET NULL;
"""
cur.execute(sql)
cur.fetchall()