为了账号安全,请及时绑定邮箱和手机立即绑定

八月MySQL之DDL、DML、DCL

标签:
MySQL

本人已有几年的SqlServer数据库开发经验,此文章只为巩固学习和总结MySQL操作,故有些地方描述不是很完整和详细。
DDL(Data Definition Language):数据定义语言,用来操作数据库、表、列、索引等数据库对象。关键字主要包括create、drop、alter等
DML(Data Manipulation Language):数据操纵语句,用于增删改查,检测数据完整性。关键字主要包括insert/delete/update/select等
DCL(Data Control Language):数据控制语句,用于定义数据库、表、字段、用户的访问权限和安全级别。主要关键字包括grant、revoke等

DDL语句

数据库的创建、删除、显示、引入

创建数据库:

CREATE DATABASE [IF NOT EXISTS] 数据库名;

删除数据库:

DROP DATABASE [IF EXISTS] 数据库名;

显示所有已建立的数据库名称列表:

SHOW DATABASES;

引入数据库为当前数据库:

USE 数据库名;

创建表

语法格式如下:

CREATE TABLE [IF NOT EXISTS] 表名称
(
    字段名1 列类型 [属性] [索引],
    ...
    字段名n 列类型 [属性] [索引]
)[表类型] [表字符集];

eg:

create table if not exists users(
 id int(10) unsigned not null auto_increment,  
 username varchar(50) not null,
 userpass varchar(50) not null,
 telno varchar(20) not null unique,        
 sex enum('男','女') not null default '男',
 brithday date not null default '0000-00-00',
 primary key(id),
 index users_username(username,userpass)
)
ENGINE=MyISAM default character set utf8 collate utf8_general_ci;

上述中设置表类型为MyISAM使用ENGINE而不是Type。最后一句的意思是:指定默认创建的表字符集(character set)为utf8,校对规则是utf8_general_ci。
表创建成功后,可以使用“show tables”命令查看,使用“describe 表名”或者“desc 表名”命令用于显示表的创建结构。


删除表

drop table [if exists] 表名;

修改表

1、为指定的数据表新增一个字段:
alter table 表名 add 字段名 <建表语句> [firstafter 列名]
语法解析:
[firstafter 列名]:在指定的列名之前或之后添加
eg:在users表的第一列之前添加name列
alter table users add name varchar(30) not null first;
在users表的userpass之后添加height列
alter table users add height double not null default '0.00' after userpass;

2、修改字段的类型或名称:
可以使用change或者modify子句,如果列名相同,则change和modify的作用相同
alter table 表名 change/modify 列表<建表语句>
eg:
修改users表中telno字段,将类型改为int,并设置默认值
alter table users modify telno int unsigned default '0';
如果要修改列名,使用change,change除了更改类型外还能更改列名,而modify不能实现修改列名这个功能。
eg:
修改users表的telno的类型,并将telno命名为phone
alter table users change telno phone int unsigned default '0';
注意:使用change,即使不更改列名,也需要在定义中包括相应的列名,即上述的“telno phone”需要写作“telno telno”。

3、重命名数据表
alter table 旧表名 rename 新表名;

4、删除表字段
alter table 表名 drop 列名;


DML语句

插入记录

1、插入单条记录:
insert into tablename(column1,column2...columnN) values(v1,v2...vN);

2、一次性插入多条记录:

insert into tablename(column1,column2,……columnN)
values
(r1_v1,r1_v2,……r1_vN),
(r2_v1,r2_v2,……r2_vN);

查询数据

1、使用LIMIT关键字,查询指定部分的数据,语法:
select ....from tablename [where..] [order by ..] limit startindex,rowcount
startindex表示起始偏移量,默认为0;rowcount表示查询的行数。

2、聚合查询
语法:

select [col1,col2,...coln] fun_name
from tablename
[where 条件语句]
[group by col1,col2,..coln
[with rollup]]
[having 分组后的条件语句]

说明:
fun_name:聚合函数
with rollup是可选语法,表明是否对分类聚合后的结果进行再汇总。eg:select wy,count(1) from user group by wy with rollup,该语句将会对最终的count(1)再进行汇总。

点击查看更多内容
19人点赞

若觉得本文不错,就分享一下吧!

评论

作者其他优质文章

正在加载中
全栈工程师
手记
粉丝
4
获赞与收藏
116

关注作者,订阅最新文章

阅读免费教程

感谢您的支持,我会继续努力的~
扫码打赏,你说多少就多少
赞赏金额会直接到老师账户
支付方式
打开微信扫一扫,即可进行扫码打赏哦
今天注册有机会得

100积分直接送

付费专栏免费学

大额优惠券免费领

立即参与 放弃机会
意见反馈 帮助中心 APP下载
官方微信

举报

0/150
提交
取消