SQL分类

1、DDL语句:数据定义语句,用来定义不同的数据段、数据库,表,列,索引等数据表对象,常用语句:create、drop、alter等。
2、DML语句:数据操作语句,用于添加、删除、更新和查询数据库记录:insert,delete,update,select.
3、DCL语句:数据控制语句,用于控制不同数据段直接的许可和访问级别的语句。这些语句定义了数据库、表、字段、用户的访问权限和安全级别。主要的语句:grant、revoke

DDL语句

1.create创建数据库

mysql> create database test1;
Query OK, 1 row affected (0.00 sec)

如果创建时,数据库已经存在则会提示:

mysql> create database test1;
ERROR 1007 (HY000): Can't create database 'test1'; database exists

这时可以使用show命令来查看系统中有哪些数据库

mysql> show databases;
+--------------------+
| Database |
+--------------------+
| information_schema |
| db1 |
| db2 |
| db3 |
| homework |
| mysql |
| mysqlbook |
| performance_schema |
| test |
| test1 |
+--------------------+
10 rows in set (0.00 sec)

2.删除数据库

语法drop + datavase + 数据库名:

mysql> drop database test1;
Query OK, 0 rows affected (0.02 sec)

注意,删除数据库时会将数据库下所有的表连同删除

3、创建表

创建表语法:

create table 表名(
字段名 数据类型 约束条件,
字段名 数据类型 约束条件,
字段名 数据类型 约束条件,

例如创建一个emp表,字段:ename、hiredate、sal,数据类型:varchar(10)、date、int(2)(后面会介绍数据类型)

create table emp(
ename varchar(10),
hiredate date,
sal decimal(10,2),
deptno int(2)
);

创建完成后可以输入以下命令查看表结构:

desc 表名

mysql> desc emp;
+----------+---------------+------+-----+---------+-------+
| Field | Type | Null | Key | Default | Extra |
+----------+---------------+------+-----+---------+-------+
| ename | varchar(10) | YES | | NULL | |
| hiredate | date | YES | | NULL | |
| sal | decimal(10,2) | YES | | NULL | |
| deptno | int(2) | YES | | NULL | |
+----------+---------------+------+-----+---------+-------+
4 rows in set (0.01 sec)

但是desc命令显示的信息不是最全的,全面信息可以用如下命令:

show create table +表名\G;

mysql> show create table emp\G;
*************************** 1. row ***************************
Table: emp
Create Table: CREATE TABLE `emp` (
`ename` varchar(10) DEFAULT NULL,
`hiredate` date DEFAULT NULL,
`sal` decimal(10,2) DEFAULT NULL,
`deptno` int(2) DEFAULT NULL
) ENGINE=InnoDB DEFAULT CHARSET=utf8
1 row in set (0.00 sec)

\G是使记录竖向排列

4、删除表

删除表的命令如下:

drop table 表名:

列如删除数据库中的emp表

drop table emp;

5、修改表

修改表设计到多方面,修改字段,删除字段、修改数据、修改数据类型以及约束条件等。

表的修改都使用到alter table语句

5.1 修改表字段的数据类型

语法:

alter table 表名 modify 字段名 数据类型 约束条件;

例如修改表emp的ename字段定义,把varchar(10)改为varchar(20):

mysql> alter table emp modify ename varchar(20);
Query OK, 0 rows affected (0.06 sec)
Records: 0 Duplicates: 0 Warnings: 0
#查看表结构
mysql> desc emp;
+----------+---------------+------+-----+---------+-------+
| Field | Type | Null | Key | Default | Extra |
+----------+---------------+------+-----+---------+-------+
| ename | varchar(20) | YES | | NULL | |
| hiredate | date | YES | | NULL | |
| sal | decimal(10,2) | YES | | NULL | |
| deptno | int(2) | YES | | NULL | |
+----------+---------------+------+-----+---------+-------+
4 rows in set (0.01 sec)
#ename字段的数据类型以及修改

5.2增加表字段

语法:

alter table 表名 add 字段名 数据类型 约束条件 [first/after 表名];

例如在emp中增加字段age,数据类型为int(3):

alter table emp add age int(3);

mysql> alter table emp add age int(3);
Query OK, 0 rows affected (0.03 sec)
Records: 0 Duplicates: 0 Warnings: 0
mysql> desc emp;
+----------+---------------+------+-----+---------+-------+
| Field | Type | Null | Key | Default | Extra |
+----------+---------------+------+-----+---------+-------+
| ename | varchar(20) | YES | | NULL | |
| hiredate | date | YES | | NULL | |
| sal | decimal(10,2) | YES | | NULL | |
| deptno | int(2) | YES | | NULL | |
| age | int(3) | YES | | NULL | |
+----------+---------------+------+-----+---------+-------+
5 rows in set (0.01 sec)

可以在语句后面加first为加到表首字段,after+字段名表示在谁后面

5.3删除表字段

语法:alter table emp drop 字段名;

举例:删除age字段

mysql> alter table emp drop age;
Query OK, 0 rows affected (0.03 sec)
Records: 0 Duplicates: 0 Warnings: 0 mysql> desc emp;
+----------+---------------+------+-----+---------+-------+
| Field | Type | Null | Key | Default | Extra |
+----------+---------------+------+-----+---------+-------+
| ename | varchar(20) | YES | | NULL | |
| hiredate | date | YES | | NULL | |
| sal | decimal(10,2) | YES | | NULL | |
| deptno | int(2) | YES | | NULL | |
+----------+---------------+------+-----+---------+-------+
4 rows in set (0.01 sec)

5.4字段改名

语法:alter table 表名 change 字段名 新字段名 [约束条件]:

alter table emp change age age1 int(4);

注意:change 和modify都可以修改表的定义,不同的是change后面需要两次列表(新旧)

5.5修改表名

语法: alter table 表名 rename 新表名;

alter table emp rename emp1;

mysql语句-DDL语句的更多相关文章

  1. MySQL的DDL语句、DML语句与DCL语句

    背景:近几年,开源数据库逐渐流行起来.由于具有免费使用.配置简单.稳定性好.性能优良等优点,开源数据库在中低端应用上占据了很大的市场份额,而 MySQL 正是开源数据库中的杰出代表.MySQL 数据库 ...

  2. MySQL使用DDL语句创建表

    一.使用DDL语句创建表 DDL语言全面数据定义语言(Data Define Language) 主要的DDL动词: CREATE(创建).DROP(删除).ALTER(修改) TRUNCATE(截断 ...

  3. Navicat批量导出mysql的DDL语句

    工作中有的时候需要将某个库中的表.视图.函数.存储过程等创建语句导出,又不需要表中的数据.同时最好放在同一个文件里面,这样方便拷贝. 方法一:需要拷贝的创建语句条数不多,不至于让你拷到头脑发晕的地步, ...

  4. 【MYSQL】DDL语句

    介绍:DDL语句,即数据定义语句,定义了不同的数据段,数据库表.表.列.索引等数据库对象:例如,create.drop.alter 适用对象:一般是由数据库管理员DBA使用 1.连接数据库 mysql ...

  5. mysql一个事务中有DDL语句的binlog情况

      在autocommit=1的情况下,开启一个事务,如果里面有DDL语句,那么事务开始到DDL语句之间的DML语句都会被提交.再开启新的事务.可以从binlog中看出   session语句: 09 ...

  6. MySQL基础(二)——DDL语句

    MySQL基础(二)--DDL语句 1.什么是DDL语句,以及DDL语句的作用 DDL语句时操作数据库对象的语句,这些操作包括create.drop.alter(创建.删除.修改)数据库对象. 2.基 ...

  7. mysql系统表加trigger和对特定的库禁用 DDL 语句

    给 mysql 系统表加上 trigger 1 Reply 默认情况下,mysql 是不能给系统表,例如 mysql.user 加上触发器的.会提示 ERROR 1465 (HY000): Trigg ...

  8. MySQL之使用DDL语句创建表

    一.使用DDL语句创建表 DDL语言全面数据定义语言(Data Define Language) 主要的DDL动词: CREATE(创建).DROP(删除).ALTER(修改) TRUNCATE(截断 ...

  9. 详解MySQL第一篇—MySQL简要介绍及DDL语句

    背景:近几年,开源数据库逐渐流行起来.由于具有免费使用.配置简单.稳定性好.性能优良等优点,开源数据库在中低端应用上占据了很大的市场份额,而 MySQL 正是开源数据库中的杰出代表.MySQL 数据库 ...

随机推荐

  1. EF CRUD

    EF 使用心得 有点傻逼! 1.通常情况 表实例一个对象 T_User model = new T_User(); 2.关键 非空字段赋值主键必须要写 model.EID = "009&qu ...

  2. Windows系统中内存泄露与检测工具及方法

    1.检测需要使用的工具:windbg工具.检测前,需要先安装windbg工具.安装了该工具后,会在安装目录下有一个umdh工具.假设windbg安装在以下目录下:D:\Program Files\De ...

  3. 【JS小技巧】JavaScript 函数用作对象的隐藏问题(F.ui.name)

    用户反馈 @消失的键盘 在论坛反馈了一个问题,在 AppBoxMvc 中的 Title 模型中,如果将 Name 属性改名为小写的 name 属性,就会报错: 因为这是一个 ASP.NET MVC 的 ...

  4. SQLite 实现删除表中前一天的数据

    注意点1 要注意SQLite datatime()函数为何获取不到系统本地时间?这个问题,坑死我了. 解决方法详见这篇文章:SQLite datatime()函数为何获取不到系统本地时间? 注意点2: ...

  5. 官宣 ! 52abp_Pro版本低调上线

    上线了 官宣!官宣!官宣! 重要的事情说三次. 是的,你没有看错 https://www.52abp.com/ 的官方企业模板:52abp-pro已经正式上线. 至此52abp.com的官方网站就算告 ...

  6. koa-router

    为了处理URL,我们需要引入koa-router这个middleware,让它负责处理URL映射. 我们把上一节的hello-koa工程复制一份,重命名为url-koa. 先在package.json ...

  7. 二十:让行内元素在div中垂直居中

    (1)使用display:table-cell配合vertical-align:center(淘宝也是这样用的) <div class="method4"> <s ...

  8. Python-0010-

    题目: 判断101-200之间有多少素数,并输出所有素数. 程序分析: 判断素数的方法:用一个数分别去除2到sqrt(这个数),如果能被整除则表明次数不是素数,反之是素数.用else 可以进一步简化代 ...

  9. hadoop:如何运行自带wordcount

    1.在linux系统创建文件 vi aa.txt   --------i 进行编辑  输入  内容(多个单词例如:aa bb cc aa) 2.在HDFS上面创建文件夹 hdfs dfs -mkdir ...

  10. vue双向数据绑定的简单实现

    vue双向数据绑定的简单实现 参考教程:链接 <!DOCTYPE html> <html lang="en"> <head> <meta ...