SQL四种语言
- DDL(数据定义语言)
- (一)、数据库操作
- 1.查询数据库(show datatbases)
- 2.创建数据库(creat database 自定义数据库名)
- 3.修改数据库 (字符集)
- 4.删除数据库:
- 5.使用或则切换数据库:
- 6.查询当前库的名字:
- (二)、数据表操作:
- 1.创建数据表:
- 2.查看数据表:
- 3.删除数据表
- 4.修改数据表
- (三)、MySQL的数据类型
- 1.数值类型
- 2.字符串类型:
- 3.日期数据类型:
- (四)、字段的约束:
- 1.主键(primary key)
- 2.删除主键
- 3.主键自动增长
- DML(数据操纵语言)
- (一)、数据表数据的添加
- 1.指定字段数据的插入
- 2.全部数据的添加
- 3.批量添加操作
- 4.全部数据添加
DDL(数据定义语言)
(一)、数据库操作
定义:用于对数据库、数据表的创建、修改、删除、查询
1.查询数据库(show datatbases)
1.展示数据库全部信息
show databases; 展示全部数据库信息
2.查找单个数据库的编码信息
show CREATE database <dbname>; 查找单个数据库的文件信息
2.创建数据库(creat database 自定义数据库名)
1.直接创建数据库
create database <dbname> 创建数据库名字为<dbname>
假如说已经存在,你再此运行窗口就会给你报错。显示该数据库已经存在。
**2.判断语句进行创建数据库 **
CREATE database if not exists <dbname>; 假如说不存在数据库<dbname> 就执行
假如说数据库不存在就创建,否则不创建。
3.在创建数据库的同时指定编码格式:(utf8 gbk)
create database if not exists <dbname> CHARACTER set utf8;
假如说不存在数据库two 就执行,同时指定数据库的字符集(数据存储在数据库的编码格式)
3.修改数据库 (字符集)
ALTER database <dbname> character set gbk;
修改two数据库的字符集为gbk
4.删除数据库:
1.直接删除
drop database <dbname>;
假如说数据库里不存在了,再次运行会报错。
2.判断删除(假如说存在就删除)
DROP database if exists <dbname>;
5.使用或则切换数据库:
use <dbname>; 使用库
6.查询当前库的名字:
select database admin();
(二)、数据表操作:
char : 字符数一样。 (汉字占两个字节)
varchar: 字符数不一样。
1.创建数据表:
首先创建表的前提是: 在一个库中。首先我们要使用这个库
CREATE TABLE if not exists <TableName>( 加入说在库中不存咋表 那么就创建
字段(属性) 数据类型(字节) 是否可空 数据是否可相同
stu_id char(8) not null unique,
stu_name varchar(20) not null ,
stu_sex char(2) not null,
stu_age int not null,
stu_phone char(11) not null unique ,
stu_qq varchar(11) unique
);
2.查看数据表:
1.查看表的创建:
show tables;
2.查看表的属性结构
DESC <TableName>; 展示出创建的表
3.查询指定表的建表语句
show create table <表名>;
3.删除数据表
1.删除表
drop TABLE if exists <TableName>; 删除表
2.删除表(并重新创建新的表)
Truncate table 表名;
4.修改数据表
1.修改表名:
alter table <TableName> rename to <NewTableName>; 修改表名
2.修改表的字符集:
alter table <TableName> character set <编码格式>; 修改表的编码格式
3.增加字段(属性\列)
alter table <TableName> add <增加的字段名> <type>;
4.修改字段和类型
alter table <TableName> change <被修改的字段名> <新的字段名> <type>;
5.只修改字段的类型:
alter table <TableName> modify <被修改的字段名> <NewType>;
7.删除字段:
alter table <TableName> drop <被删除的字段>;
(三)、MySQL的数据类型
1.数值类型
1.整形:
取值范围如果加了unsigned,则最大值翻倍。比如 tinyint unsigned(0~256);
2.数值类型(double float)
3.定点数()
浮点型在数据库中存放的是近似值,而定点类型在数据库中存放的是精确值。
declima(m,d);
所占内存 m+2个;
m<65;
连上小数一共最多有65个。
d<30&&d<m
小数部位最多有30个并且小数部分不能大于总数。
2.字符串类型:
char和varchar:
1.char(n)若存入字符数小于n,则以空格补于其后,查询之时再将空格去掉。所以char类型存储的字符串末尾不能有空格,varchar不限于此。
2.char(n)固定长度,char(4)不管是存入几个字符,都将占用4个字节.varchar是存入的实际字符数+1个字节(n<=255)或2个字节(n>255),所以varchar(4),存入3个字符将占用4个字节。
3.char类型的字符串检索速度要比varchar类型的快。
varchar和text:
1.varchar可指定n,text不能指定,内部存储 varchar是存入的实际字符数+个字节(n<=255)或2个字节(n>255),text是实际字符数+2个字节。
2.text类型不能有默认值。
3.varchar可直接创建索引,text创建索引要指定前多少个字符。varchar查询速度快于text,在都创建索引的情况下,text的索引似乎不起作用。
3.日期数据类型:
若定义一个字段为timestamp,这个字段里的时间数据会随其他字段修改的时候自动刷新,所以这个数据类型的字段可以存放这条记录最后被修改的间。
(四)、字段的约束:
通过对字段的类型进行约束。就是字段的约束.为了保障数据的有效性,保证数据的完整性(null),保证数据的唯一约束(unique).
NULL 字段的内容可以为空
NOT NULL 字段的内容绝不可以为空
Unique 字段的内容绝对不能重复
primary key 能够唯一标识数据表中的某个字段的属性
forigner key 主要建立不同表之间的关系。
1.主键(primary key)
能够唯一标识数据表中的某个字段的属性,一个表中最多只有一个主键并且主键不能为空。(不空)(不重复)
创表的同时,添加主键。
stu_id char(8) primary key; 后面的约束可省略
创建表之后,再添加主键。
alter table <TableName> modify <被添加主键的字段名> <Type> primary key;
2.删除主键
alter table <TableName> drop primary key;
3.主键自动增长
我们在创建数据表的时候,假如说表中有列可以作为主键(列如 学生表中的学号,图书馆中图书管号)我们可以把这个列作为主键。
当有些数据表中没有合适的列作为主键的时候,我们可以额外定义一个与记录本身无关的(ID)作为主键,此列数据无具体的含义主要用于标识一条记录,在mysql中我们可以将此设置为int,并且同时设置为 自动增长。
定义主键自动增长型:
auto_increment 自动增长
DML(数据操纵语言)
(一)、数据表数据的添加
1.指定字段数据的插入
insert into <数据表名>(字段1,字段2) values (值1,值2);
2.全部数据的添加
insert into <数据表> values(值1,值2,值3);
3.批量添加操作
insert into <数据表>(字段1,字段2) values(值1,值n),(值1,值n)
4.全部数据添加
insert into <数据表> values(值1,值2),(值1,值2);