MYSQL的SQL语句
- SQL: Structure Query Lanuage 结构化查询语言
- DDL:数据定义语言:定义数据库,数据库表它们的结构:create(创建) drop(删除) alter(修改)
- DML:数据库操纵语言:主要用来操作数据 insert(插入) update(修改) delete(删除)
- DCL:数据控制语言:定义访问权限,取消访问权限,安全设置 grant
- DQL:数据查询语言:select(查询) from子句 where子句
数据库的CRUD的操作
1.创建数据库
- create database 数据库的名字;
- create database 数据库的名字 character set 字符集;
- create database 数据库的名字 character set 字符集 collate 校对规则;
2.查看数据库
- 查看数据库定义的语句
- show create database 数据库的名字;
- 修改数据库的字符集
- alter database 数据库的名字 character set 字符集
- 选中数据库
- use 数据库的名字;
表的CRUD操作
1.创建表
create table 表名(
列名 列的类型(长度) 约束,
列名2 列的类型(长度) 约束
);
列的类型:
int
char 固定长度
varchar 可变长度(一个汉字需要长度为3)
double
float
boolean
date:YYYY-MM-DD
datetime:YYYY-MM-DD hh:mm:ss 默认值是null
timestamp:YYYY-MM-DD hh:mm:ss 默认值是当前时间
text:用来存放文本
blob:存放二进制
列的约束:
主键约束:primary key
唯一约束:unique
非空约束:not null
auto_increment 序号自动增加
2.查看表
- 查看所有的表
- show tables;
- 查看表的创建过程
- show create table 表名;
- 查看表结构
- desc 表名;
3.修改表
添加列add
alter table 表名 add 列名 列的类型 列的约束;
修改列modify
alter table 表名 modify 列名 列的类型 列的约束;
修改列名change
alter table 表名 change 原列名 新列名 列的类型;
修改表名rename
rename table 原表名 to 新表名;
修改表的字符集
alter table 表名 character set 字符集;
删除表
drop table 表名;
SQL对表中数据的CRUD的操作
插入数据
insert into 表名(列名1,列名2,列名3) values (值1,值2,值3);
//如果插入的是全列名的数据,列名可以省略
//插入的是部分列,不能省略
//批量插入
insert into 表名(列名1,列名2,列名3) values (值1,值2,值3),(值1,值2,值3),(值1,值2,值3);
查看表中的数据
select * from 表名;
删除记录
delete from 表名 where 条件;
问题:请说一下delete删除数据和truncate删除数据有什么区别?
delete:DML 一条一条删除表中的数据,数据少高效
truncate:DDL 先删除表再重建表,数据多高效
更新表记录
update 表名 set 列名=值1,列名2=值2 where 条件;
简单查询
查询学生所有信息;
select * from student;
查询学生姓名和性别;
select sname,ssex from student;
别名查询,as的关键字,as关键字是可以省略
表别名,主要用在多表查询