基础语句速度入门
数据库
创建数据库 create database xxx;
显示数据库 show database;
删除数据库 drop database xxx;
使用数据库 use xxx;
表
创建表
create table xxx(
列名1 类型 约束(可有可无),
列名2 类型,
.......
);
列名不涉及关键字随意起,或者用` `引起来就行。
类型有以下几类:
- int 整型
- float,double 小数
decimal(m,n)也是小数,m表示这个数总的位数,n表示小数点后的位数,如3.14则m为3,n为2
相比之下decimal精度更高,但是运算更慢
3. char(n)是定长字符串,n为固定长度,以字符为单位
varchar(n)是变长字符串,n为最大长度
varchar会精确计算存储空间,因此更灵活,节省空间,但耗时更长,char一致性更优
4. blob 存放二进制资料
5. date 日期 格式("YYYY-MM-DD")Y为年,M为月,D为日
timestamp比date多了时分秒
约束有以下几类:
1. primary key 主键,唯一标识,不能重复
2. not null 非空
3. unique 列中所有值都是唯一值,不能出现重复
4. foregin key 外键,用于链接
5. check 检查列值是否符合要求
6. default n 默认值为n
7. auto_incroment 自动为每行分配唯一序号,常用于主键
8. on delete/on update 父表删除或更新时允许对子表做出对应修改
举例:
create table student
(
id
int primary key,
name
varchar(8),
class
int
);
展示表格 describe xxx;
删除表格 drop xxx;
更改表结构
alter table xxx add number int; 新增一列number
alter table xxx drop column class; 删除class列
插入数据
insert into xxx values(a,b,c); 整行插入,values后面需要包括所有属性值
insert into xxx(xx,yy) values(a,b); 部分插入,只插入部分属性值,其余默认为null
修改表中具体的值
举例子,比如有个同学老张,在2班,现在改为3班
update xxx
set class
=3
where name
="老张";
假如把最后一行where去掉,就变成整表赋值了,整个表的class都为3
什么时候要加table、database什么时候不用呢?
简单来说就是创建、删除要写,展示不用,当我们要修改表的结构的时候要写,只是修改里面的值不用
复制数据表
1. like方式
create table if not exists xxx like yyy;
2. as方式
create table if not exists xxx as select * from yyy;
清空数据表
1. 整表删除
truncate table xxx;
2. 选择性删除
delete from xxx where .... ;
连接python
import mysql.connector
connection = mysql.connector.connect(
host='localhost',
port=' ',
user=' ',
password=' ' )
cursor.connection.cursor()
使用操作
cursor.execute('sql语句')
改变库时要
cursor.commit()
关闭
cursor.close()
connection.close()
学习sql,当sql之神