基础语句速度入门

数据库

创建数据库 create database xxx;

显示数据库 show database;

删除数据库 drop database xxx;

使用数据库 use xxx;

创建表

create table xxx(

列名1 类型 约束(可有可无),

列名2 类型,

.......

);

列名不涉及关键字随意起,或者用` `引起来就行。

类型有以下几类:

  1. int 整型
  2. 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,当sql之神

全部评论

相关推荐

2 4 评论
分享
牛客网
牛客企业服务