mysql属于dcl语句的是_Mysql的DDL DML DCL语句分别是什么意思

Mysql的DDL DML DCL语句分别是什么意思

sql:结构化查询语句,专门访问各种数据库的标准语言

根据他们的作用不同

1,DDL:数据定义语言

创建库,创建表,修改表结构等操作,这些操作和数据无关和数据结构有关

好比java中声明类,声明方法

2,DML:数据库操作语言

增删改查数据

因为数据库最多的操作其实是查询,有人把数据库的查询语句单独列出来,DQL ,Date Query language。

3,DCL :数据库控制语言

例如:权限的授权与回收,事务的提交与回滚

/*

一、DDL:数据定义语言 Data Define Language

*/

#和数据库的结构操作相关的SQL

#1、查看当前用户可以在当前的DBMS数据库管理软件中可以看到的数据库

show databases;

#2、使用某个数据库

use 数据名;

#3、创建数据库

create database 数据名;

create database 数据名 charset ‘utf8’;

#4、删除数据库

drop database 数据库名;

#和表格的结构操作相关

5、查看某个数据库下的所有表格

show tables; #前提是前面有use 数据名;的语句

show tables from 数据库名;

6、创建表格V1.0

create table 【数据库名.】表名称(

字段名 数据类型,

字段名 数据类型

);

create table 【数据库名.】表名称(字段名 数据类型,字段名 数据类型);

注意:,表示各个字段之间的分隔符。

和Java不同的是,Java是先写数据类型后写字段名,mysql是先写字段名再写数据类型

create table stu(

id int,

name varchar, #ERROR 1064 (42000): You have an error in your SQL syntax;

birthday date,

gender char,

weight double(4,1), #-999.9~999.9

score int

);

create table stu(

id int,

name varchar(20),

birthday date,

gender char,

weight double(4,1), #-999.9~999.9

score int

);

7、查看表结构

desc 表名称;

desc:describe 描述

show create table 表名称;

8、删除表结构

drop table 表名称;

注意:无法回滚,数据也会删除。

9、修改表结构

(1)修改表名称

rename table 旧名称 to 新名称;

alter table 旧名称 rename 新名称;

(2)增加一个字段,即给某个表增加一列

alter table 表名称 add 【column】 字段名称 数据类型; #默认在最后

alter table 表名称 add 【column】 字段名称 数据类型 after 另一个字段名; #指定特定位置

alter table 表名称 add 【column】 字段名称 数据类型 first;

alter table stu add tel char(11);

(3)删除一个字段,即给某个表删除一列

alter table 表名称 drop 【column】 字段名称;

(4)修改字段的数据类型

alter table 表名称 modify 【column】 字段名称 数据类型;

(5)修改字段的名称

alter table 表名称 change 【column】 旧字段名称 新字段名称 数据类型;

(6)修改字段的位置

alter table 表名称 modify 【column】 字段名称 数据类型 after 另一个字段名; #指定特定位置

alter table 表名称 modify 【column】 字段名称 数据类型 first;

/*

二、DML

*/

/*

1、添加数据

*/

#为所有字段赋值,一次添加一行

insert into 表名称 values(值列表); #要求值的数量、顺序与表结构的数量、顺序一一对应

#为指定字段赋值,一次添加一行

insert into 表名称(字段列表) values(值列表);

#为所有字段赋值,一次添加多行

insert into 表名称 values(值列表),(值列表),(值列表)。。。;

#为指定字段赋值,一次添加多行

insert into 表名称(字段列表) values(值列表),(值列表),(值列表)。。。;

stu表:

+———-+————-+——+—–+———+——-+

| Field | Type | Null | Key | Default | Extra |

+———-+————-+——+—–+———+——-+

| id | int(11) | YES | | NULL | |

| name | varchar(20) | YES | | NULL | |

| birthday | date | YES | | NULL | |

| tel | char(11) | YES | | NULL | |

| sex | char(1) | YES | | NULL | |

| weight | double(4,1) | YES | | NULL | |

| score | int(11) | YES | | NULL | |

+———-+————-+——+—–+———+——-+

7 rows in set (0.00 sec)

insert into stu values(1,’张三’,’1992-01-01′,’12345678901′,’男’,150.5,99);

insert into stu values(2,’李四’);

ERROR 1136 (21S01): Column count doesn”t match value count at row 1

insert into stu(id,name) values(2,’李四’);

insert into stu values

(3,’王五’,’1992-03-01′,’12345678901′,’男’,150.5,99),

(4,’赵六’,’1996-03-01′,’12345678901′,’男’,150.5,99);

insert into stu(id,name)values(5,’李五’),(6,’小贝’);

/*

2、查看所有数据

*/

select * from 表名称;

/*

3、修改数据

*/

update 表名称 set 字段名 = 字段值, 字段名 = 字段值 。。。; #这种是修改所有行的部分字段

update 表名称 set 字段名 = 字段值, 字段名 = 字段值 。。。where 条件; #这种是修改部分行(满足条件的行)的部分字段

update stu set sex = ‘女’,weight = 100;

update stu set sex = ‘男’,weight = 150.5 where id = 1;

/*

4、删除

*/

1、删除整张表的数据

(1)delete from 表名称;

(2)truncate 表名称;

(1)和(2)的区别:delete是一条一条删除。truncate是把整张表drop掉,重新建一张。

delete如果在事务中,可以回滚。truncate是无法回滚。

delete from stu;

2、删除部分行

delete from 表名称 where 条件; #删除满足条件的行

你可能感兴趣的:(mysql属于dcl语句的是)