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>;     查找单个数据库的文件信息

mysql c语言的预编译是什么 mysql编写语言_数据库


mysql c语言的预编译是什么 mysql编写语言_sql_02

2.创建数据库(creat database 自定义数据库名)

1.直接创建数据库

create database  <dbname>    创建数据库名字为<dbname>

假如说已经存在,你再此运行窗口就会给你报错。显示该数据库已经存在。

mysql c语言的预编译是什么 mysql编写语言_mysql c语言的预编译是什么_03


**2.判断语句进行创建数据库 **

CREATE database if not exists <dbname>;    假如说不存在数据库<dbname> 就执行

假如说数据库不存在就创建,否则不创建。

mysql c语言的预编译是什么 mysql编写语言_sql_04


3.在创建数据库的同时指定编码格式:(utf8 gbk)

create database if not exists <dbname> CHARACTER set utf8;
 假如说不存在数据库two 就执行,同时指定数据库的字符集(数据存储在数据库的编码格式)

mysql c语言的预编译是什么 mysql编写语言_数据库_05

3.修改数据库 (字符集)
ALTER database <dbname> character set gbk; 
  修改two数据库的字符集为gbk

mysql c语言的预编译是什么 mysql编写语言_数据库_06

4.删除数据库:

1.直接删除

drop database <dbname>;

假如说数据库里不存在了,再次运行会报错。

mysql c语言的预编译是什么 mysql编写语言_mysql c语言的预编译是什么_07


2.判断删除(假如说存在就删除)

DROP database if exists <dbname>;

mysql c语言的预编译是什么 mysql编写语言_sql_08

5.使用或则切换数据库:
use <dbname>;   使用库
6.查询当前库的名字:
select database admin();

(二)、数据表操作:

char : 字符数一样。 (汉字占两个字节)
varchar: 字符数不一样。

1.创建数据表:

mysql c语言的预编译是什么 mysql编写语言_字段_09


首先创建表的前提是: 在一个库中。首先我们要使用这个库

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;

mysql c语言的预编译是什么 mysql编写语言_字段_10


2.查看表的属性结构

DESC <TableName>;    展示出创建的表

mysql c语言的预编译是什么 mysql编写语言_mysql c语言的预编译是什么_11


3.查询指定表的建表语句

show create table <表名>;

mysql c语言的预编译是什么 mysql编写语言_字段_12

3.删除数据表

1.删除表

drop TABLE if exists <TableName>;           删除表

mysql c语言的预编译是什么 mysql编写语言_数据库_13


2.删除表(并重新创建新的表)

Truncate table 表名;
4.修改数据表

1.修改表名:

alter table <TableName> rename to <NewTableName>;  修改表名

2.修改表的字符集:

alter table <TableName> character set <编码格式>;  修改表的编码格式

3.增加字段(属性\列)

alter table <TableName> add <增加的字段名> <type>;

mysql c语言的预编译是什么 mysql编写语言_mysql c语言的预编译是什么_14


4.修改字段和类型

alter table <TableName> change  <被修改的字段名> <新的字段名> <type>;

mysql c语言的预编译是什么 mysql编写语言_字段_15


5.只修改字段的类型:

alter table <TableName> modify  <被修改的字段名>  <NewType>;

mysql c语言的预编译是什么 mysql编写语言_mysql c语言的预编译是什么_16


7.删除字段:

alter table <TableName> drop <被删除的字段>;

mysql c语言的预编译是什么 mysql编写语言_sql_17

(三)、MySQL的数据类型

1.数值类型

1.整形:

取值范围如果加了unsigned,则最大值翻倍。比如 tinyint unsigned(0~256);

mysql c语言的预编译是什么 mysql编写语言_mysql c语言的预编译是什么_18


2.数值类型(double float)

mysql c语言的预编译是什么 mysql编写语言_mysql_19


3.定点数()

浮点型在数据库中存放的是近似值,而定点类型在数据库中存放的是精确值。

declima(m,d);
所占内存 m+2个;
   m<65;
   连上小数一共最多有65个。
   d<30&&d<m
    小数部位最多有30个并且小数部分不能大于总数。
2.字符串类型:

mysql c语言的预编译是什么 mysql编写语言_sql_20

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.日期数据类型:

mysql c语言的预编译是什么 mysql编写语言_mysql c语言的预编译是什么_21


若定义一个字段为timestamp,这个字段里的时间数据会随其他字段修改的时候自动刷新,所以这个数据类型的字段可以存放这条记录最后被修改的间。

(四)、字段的约束:

通过对字段的类型进行约束。就是字段的约束.为了保障数据的有效性,保证数据的完整性(null),保证数据的唯一约束(unique).

NULL 字段的内容可以为空
NOT NULL 字段的内容绝不可以为空
Unique 字段的内容绝对不能重复
primary key 能够唯一标识数据表中的某个字段的属性
forigner key 主要建立不同表之间的关系。

mysql c语言的预编译是什么 mysql编写语言_sql_22

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(数据操纵语言)

(一)、数据表数据的添加

mysql c语言的预编译是什么 mysql编写语言_数据库_23

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);