SQL语句:结构化查询语句,使用SQL与数据库“沟通”,完成相应的数据库操作。

语句分类

DDL(Data Definition Languages)语句:即数据库定义语句,用来创建数据库中的表、索引、视图、存储过程、触发器等,常用的语句关键字有:CREATE,ALTER,DROP,TRUNCATE,COMMENT,RENAME。增删改表的结构

DML(Data Manipulation Language)语句:即数据操纵语句,用来查询、添加、更新、删除等,常用的语句关键字有:SELECT,INSERT,UPDATE,DELETE,MERGE,CALL,EXPLAIN PLAN,LOCK TABLE,包括通用性的增删改查。增删改表的数据

DCL(Data Control Language)语句:即数据控制语句,用于授权/撤销数据库及其字段的权限(DCL is short name of Data Control Language which includes commands such as GRANT and mostly concerned with rights, permissions and other controls of the database system.)。常用的语句关键字有:GRANT,REVOKE。

TCL(Transaction Control Language)语句:事务控制语句,用于控制事务,常用的语句关键字有:COMMIT,ROLLBACK,SAVEPOINT,SET TRANSACTION。

一. DDL语句

增删改表的结构,代表字段:create,alter,drop

1.1 创建表

创建表CREATE

演示:创建员工表

CREATE TABLE employee(

id int(4),

name VARCHAR(20),

gender CHAR(1),

birth DATE,

salary float(2),

job VARCHAR(30),

deptno int(2)

);

设置默认值 DEFAULT

可以通过DEFAULT子句给列指定默认值

CREATE TABLE emptest(

id int(4),

name VARCHAR(20),

gender CHAR(1) DEFAULT 'M',

birth DATE

);

设置列值非空NOT NULL

默认情况下,任何列都允许有空值。非空(NOT NULL)是一种条件约束,用于确保字段值不为空,当某个字段被设置了非空约束条件,这个字段中必须存在有效值,即:当执行插入数据操作时,必须提供这个列的数据;当执行更新操作时,不能给这个列的值设置为NULL。Ø NOT NULL:非空

CREATE TABLE emptest(

id int(4) ,

name VARCHAR20) NOT NULL,

gender CHAR(1) DEFAULT 'M',

birth DATE

);

1.2 复制表

复执表中所有数据

CREATE TABLE emptest1 as select * from emptest;

复制表中部分数据

CREATE TABLE emptest2 as select id,name from emptest;

1.3 修改表

修改表名RENAME

演示:修改表名

alter table emptest rename to/as testemp;  #修改表名

create table testemp1 like emptest;    #创建表结构.这样的建表方式,不仅仅是表的结构,连带着索引也会同时创建.

增加列ALTER ADD

演示:在testemp表下面增加hiredate列,并将默认值设置为当前时间增加列,列只能增加在最后,不能插入现有的列中。

ALTER TABLE testemp ADD(hiredate DATE DEFAULT sysdate);

删除列 ALTER DROP

删除列,删除字段需要从每行中删掉该字段占据的长度和数据,并释放在数据块中占据的空间,如果表记录比较大,删除字段可能需要比较长的时间。

演示:删除testemp表下的hiredate

ALTER TABLE testemp DROP (hiredate);

修改列 ALTER MODIFY

修改列,使用MODIFY可以改变表中列的数据类型、长度和默认值,注意这种修改仅对以后插入的数据有效。另外如果表中已经有数据的情况下,把长度由大改小,有可能不成功,比如原来类型是VARCHAR2(100),其中已经存放了100字节长度的数据,如果改为80字节,则不会修改成功。

演示:修改testemp表中name的长度为30

ALTER TABLE testemp MODIFY(name VARCHAR(30));

1.4 查看表的数据结构DESC

DESC employee;

1.5 删除表DROP

DROP TABLE emptest;

DROP TABLE if exist emptest;

二. DML语句

用于增删改表中数据,DML是伴随TCL事务控制的。代表字段:insert,delete, update

增加记录INSERT

INSERT语句用来给数据表增加记录,每次增加一条记录。所有的DML操作,需要再执行事务提交语句COMMIT才算真正确认了此操作。

语法: insert into tablename(columnname1,columnname2,columnname3,c...) values(value1,value2,value3,....);

字段和值必须一一对应,个数必须相同,数据类型必须一致

演示:想testemp中插入一条记录

INSERT INTO testemp (id,name,gender) VALUES (1,'张三','M');

COMMIT;

插入数据时忽略字段则是全列插入,顺序不能错误,如下:

INSERT INTO testemp VALUES (10,'李四','F',sysdate);

COMMIT;

注意:如何插入中文数据
使用DOS命令窗口不能直接插入中文,因为DOS窗口是GBK的编码方式,但是数据库表只接受UTF-8
因此可以使用图形化界面工具插入数据,在DOS窗口中查询的时候出现乱码,
可以修改查询结果集的显示编码方式。
mysql> set character_set_results ='GBK';

更新表记录UPDATE

更新表中的记录,需要配合WHERE子句使用,否则全表的数据都会被更新。

语法: update tablename set 字段名=字段值,字段名=字段值,字段名=字段值 where 条件

演示:更新testemp表中张三的ID为2

UPDATE testemp SET id=2 WHERE name='张三';

COMMIT;

同时修改两个类型:

UPDATE testemp SET id=5,name='王五' WHERE name='李四';

COMMIT;

删除表记录DELETE

删除表中的记录,和UPDATE一样,需要配合WHERE子句使用,不然会将全表数据删除。

语法: delete from tableame where 条件

演示:将testemp表中id为2的记录删除

DELETE FROM testemp WHERE id=2;

清空表:

DELETE FROM testemp;

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

    DDL 数据库定义语句 创建数据库 create table if exits 数据库.表名( field1 数据类型 约束类型 commit 字段注释, field2 数据类型 约束类型 commi ...

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

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

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

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

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

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

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

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

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

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

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

    点击打开所使用到的数据库>>> 1.添加 easyShopping 客户数据. insert into customer values('abc111','111',' 刘一鸣 ', ...

随机推荐

  1. python 数据处理 对txt文件进行数据处理

    数据: 对txt文件进行数据处理: txt_file_path = "basic_info.txt" write_txt_file_path = "basic_info1 ...

  2. 采用FLAG_ACTIVITY_CLEAR_TOP退出整个程序(多activity)

    问题: 多activity中退出整个程序,例如从A->B->C->D,这时我需要从D直接退出程序. 网上资料:{ finish()和system(0)都只能退出单个activity. ...

  3. 吴裕雄--天生自然java开发常用类库学习笔记:ListIterator接口

    import java.util.ArrayList ; import java.util.List ; import java.util.ListIterator ; public class Li ...

  4. NO11 SSH故障排查思路和netstat命令

    本章知识相关考试:1.企业场景面试题:Linux系统如何优化?2.企业场景面试题:SSH服务连不上,如何排查?记住回答技巧: 1 ping  2 telnet 客户端ssh工具:SecureCRT,x ...

  5. Golang的基础数据类型-布尔型

    Golang的基础数据类型-布尔型 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 一.bool类型概述 bool类型的取值范围: bool类型的值只有两种,其值不为真即为假,可以用 ...

  6. Golang的标准命令简述

    Golang的标准命令简述 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. Go本身包含了大量用于处理Go程序的命令和工具.go命令就是其中最常见的一个,它有许多子命令,接下来就跟随 ...

  7. P1055 集体照

    P1055 集体照 转跳点:

  8. 解决CSS背景模糊

    .banner{ background:url(banner.jpg); -moz-background-size:100% 100%; background-size:100% 100%; }

  9. Python实战案例:这是你见过的最详细的JS加密登录某博

    0x00 抓包分析 简单的搜索之后发现,很多参数都是登陆上面这个请求返回的值,这个请求在输入完账号光标到达密码框时就会生成! 0x01 加密逻辑分析 搜索su=可以很快找到加密的位置,上图看到e.su ...

  10. 实验吧-杂项-你没有见过的加密!(php srand()和rand()函数)

    什么垃圾东西,弄半天,Windows上运行乱码,linux上7.3的php运行也是乱码(气死). 下载文件,查看内容 <?php function encrypt($str) { $crypte ...