DDL 数据库定义语句

创建数据库

1. 操作数据库:CRUD
1. C(Create):创建
* 创建数据库:
* create database 数据库名称;
* 创建数据库,判断不存在,再创建:
* create database if not exists 数据库名称;
* 创建数据库,并指定字符集
* create database 数据库名称 character set 字符集名; * 练习: 创建db4数据库,判断是否存在,并制定字符集为gbk
* create database if not exists db4 character set gbk;
2. R(Retrieve):查询
* 查询所有数据库的名称:
* show databases;
* 查询某个数据库的字符集:查询某个数据库的创建语句
* show create database 数据库名称;
3. U(Update):修改
* 修改数据库的字符集
* alter database 数据库名称 character set 字符集名称;
4. D(Delete):删除
* 删除数据库
* drop database 数据库名称;
* 判断数据库存在,存在再删除
* drop database if exists 数据库名称;
5. 使用数据库
* 查询当前正在使用的数据库名称
* select database();
* 使用数据库
* use 数据库名称;

创建数据库表

create table if exits 数据库.表名(
field1 数据类型 约束类型 commit 字段注释,
field2 数据类型 约束类型 commit 字段注释
);
例子:
CREATE TABLE IF NOT EXISTS school.Student
(id INT PRIMARY KEY COMMENT "id列",
stu_name VARCHAR(32) NOT NULL COMMENT "学生姓名",
age INT COMMENT "学生年");
查看表:
describe 表名;
desc 表名;

例如:

describe Student;
desc Student;

查看创建表的方法:

show create table Student\G;

修改表名:

alter table 旧表名 rename 新表名;
alter table 旧表名 rename to 新表名;
alter table 旧表名 rename as 新表名;

修改字段名和类型:

alter table 表名 change 旧属性名 新属性名 新属性类型;
alter table student change stu_name name char(32);

仅仅修改字段名或类型:

alter table 表名 change 属性名 属性名 新属性类型

字段操作

新增字段:

alter table 表名 add 新属性姓名 新属性类型 约束 first| after 原有字段(即在那个字段后,不写是最后, first 表示最前;
alter table student add birth_date date not null first;
alter table student add die_date date not null after name;

删除字段:

alter table 表名 drop 属性名;

修改字段排列顺序:

alter table 表名 modify 属性名 属性类型 约束 first;
alter table 表名 modify 属性名 属性类型 约束 after 在那个字段后面;

删除外键:

alter table 表名 drop foreign key 外键名;

删除表

drop table 表名;

总结:

1. C(Create):创建
1. 语法:
create table 表名(
列名1 数据类型1,
列名2 数据类型2,
....
列名n 数据类型n
);
* 注意:最后一列,不需要加逗号(,)
* 数据库类型:
1. int:整数类型
* age int,
2. double:小数类型
* score double(5,2)
3. date:日期,只包含年月日,yyyy-MM-dd
4. datetime:日期,包含年月日时分秒 yyyy-MM-dd HH:mm:ss
5. timestamp:时间错类型 包含年月日时分秒 yyyy-MM-dd HH:mm:ss
* 如果将来不给这个字段赋值,或赋值为null,则默认使用当前的系统时间,来自动赋值 6. varchar:字符串
* name varchar(20):姓名最大20个字符
* zhangsan 8个字符 张三 2个字符 * 创建表
create table student(
id int,
name varchar(32),
age int ,
score double(4,1),
birthday date,
insert_time timestamp
);
* 复制表:
* create table 表名 like 被复制的表名;
2. R(Retrieve):查询
* 查询某个数据库中所有的表名称
* show tables;
* 查询表结构
* desc 表名;
3. U(Update):修改
1. 修改表名
alter table 表名 rename to 新的表名;
2. 修改表的字符集
alter table 表名 character set 字符集名称;
3. 添加一列
alter table 表名 add 列名 数据类型;
4. 修改列名称 类型
alter table 表名 change 列名 新列别 新数据类型;
alter table 表名 modify 列名 新数据类型;
5. 删除列
alter table 表名 drop 列名;
4. D(Delete):删除
* drop table 表名;
* drop table if exists 表名 ;

DML数据库管理语句

插入表数据:

insert into table_name values();
insert into table_name(field, field2, field3) values(data1,data2,data3);
insert into table_name(field, field2, field3) values(data1,data2,data3), (data1,data2,data3);

修改表数据:(一定要注意,不要修改了全部字段,避免方式加上where进行过滤);

update 表名 set 需要修改的列的名称=修改的值
update table_name set field1=value1,field2=value2 where field3 = '';

插入从其他表查出的数据
从其他表查询数据子啊from后面无法直接填表名,可以接字表查询出来用别名进行代替。

update table_name1 set field_name=(select field_name from (select name from table_name2 where id = 1) as t) where id = 1;
update teacher set name=(select name from (select name from student where id = 1) as stu) where id=1;

删除数据 必须加上where:

delete from table_name where id = 1;

删除数据同时删除表结构:

truncate table table; 清空表

MySQL 基础 DDL和DML的更多相关文章

  1. MySQL Online DDL与DML并发阻塞关系总结

    MySQL DDL操作执行的三种方式 1,INPLACE,在进行DDL操作时,不影响表的读&写,可以正常执行表上的DML操作,避免与COPY方法相关的磁盘I/O和CPU周期,从而最小化数据库的 ...

  2. MySQL常用DDL、DML、DCL语言整理

    DDL ----Data Definition Language 数据库定义语言 如 create procedure之类 创建数据库 CREATE DATABASE [IF NOT EXISTS] ...

  3. MySQL的DDL和DML

    SQL语句:结构化查询语句,使用SQL与数据库“沟通”,完成相应的数据库操作. 语句分类 DDL(Data Definition Languages)语句:即数据库定义语句,用来创建数据库中的表.索引 ...

  4. mysql基础操作(一):DDL、DML

    -- 1.在命令行中开启数据库: net start mysql -- 2.在命令行中关闭数据库: net stop mysql 1.DDL语句:create.drop.alter -- 查看所有的数 ...

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

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

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

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

  7. Mysql 数据库操作之DDL、DML、DQL语句操作

    Mysql 数据库操作之DDL.DML.DQL语句操作 设置数据库用户名密码 l  Show databases 查看数据库列表信息 l  查看数据库中的数据表信息 ,格式: use 数据库名: sh ...

  8. Mysql中DDL, DML, DCL, 和TCL是什么?

    在一些公司中提交给测试团队的SQL脚本会划分为DDL.DML等,但这些概念到底是如何定义的呢? SQL(Structure Query Language)是数据库操作的的核心语言,接下来我们通过一张图 ...

  9. 【MySQL作业】DDL 和 DML——美和易思使用 DML 删除表数据应用习题

    点击打开所使用到的数据库>>> 删除客户"刘一鸣". 执行 SQL 代码"delete from customer where cName=' 刘一鸣 ...

随机推荐

  1. MVC的ViewData自动给Razor写的input赋值

    问题: 写编辑的时候,突然发现,没有值的model,突然出现了值,而且值是ViewData中值. 后台: this.ViewData["test"] = "测试" ...

  2. 使用Python往手机发送短信(基于twilio模块)

    官网是https://www.twilio.com twilio的一句话介绍——提供SDK帮你连接世界上所有人,你可以很方便的调用他们提供的接口来给指定手机发短信,打电话. 首先在twilio的官网注 ...

  3. JVM内存GC的骗局——JVM不抛出OOM但内存已经泄露

    概述 在日常测试中,我们会去重点观察java的内存使用情况,比如:进程会抛出OOM异常,不再接收新的请求:响应时间在固定时间段内变长,超时或者不响应,CPU使用率时常像过山车一样等.有时候JVM还会发 ...

  4. 一、在windows环境下修改pip镜像源的方法(以python3为例)

    在windows环境下修改pip镜像源的方法(以python3为例) 1.在windows文件管理器中,输入 %APPDATA% 2.会定位到一个新的目录下,在该目录下新建pip文件夹,然后到pip文 ...

  5. http://linux-mtd.infradead.org/doc/nand.html nand

    http://linux-mtd.infradead.org/doc/nand.html

  6. JMeter结果树响应数据中文乱码解决办法

    encoding编码 打开apache-jmeter-2.11\bin\jmeter.properties文件,搜索“encoding”关键字,找到如下配置: # The encoding to be ...

  7. 老师的blog整理 .网络编程部分 .网络编程部分 前端部分 django基础部分

    老师的blog整理 python基础部分: 宝哥blog: https://www.cnblogs.com/guobaoyuan/ 开哥blog: https://home.cnblogs.com/u ...

  8. SQLServer 索引重建

    SQL Server 索引重建脚本 在数据的使用过程中,由于索引page碎片过多,带来一些不利的性能问题,我们有时候需要对数据库中的索引进行重组或者重建工作.通常这个阈值为30%,大于30%我们建议进 ...

  9. hbase与sqoop的集成

    1.sqoop抽取mysql表到hbase中 export HBASE_HOME=/opt/cdh-5.3.6/hbase-0.98.6-cdh5.3.6 export HADOOP_HOME=/op ...

  10. nginx反向代理服务器获取不到端口的问题的解决办法

    使用nginx为反向代理服务器时,后端应用程序获取不到请求端口的解决办法. 以下是nginx 简单的配置 server {         listen       81;         serve ...