sql-DDL, DML 常用语句
mysql的安装可见: http://www.cnblogs.com/wenbronk/p/6840484.html
很久不用mysql, 今天建表都不会了, , ,
慢慢补充
sql语言分为3种: DDL, DML, DCL
DML(data manipulation language)是数据操纵语言:它们是SELECT、UPDATE、INSERT、DELETE,就象它的名字一样,这4条命令是用来对数据库里的数据进行操作的语言。 DDL(data definition language)是数据定义语言:DDL比DML要多,主要的命令有CREATE、ALTER、DROP等,DDL主要是用在定义或改变表(TABLE)的结构,数据类型,表之间的链接和约束等初始化工作上,他们大多在建立表时使用。
DCL(DataControlLanguage)是数据库控制语言:是用来设置或更改数据库用户或角色权限的语句,包括(grant,deny,revoke等)语句。
DDL
ddl的操作主要是针对数据库和数据表的
CREATE:用于创建数据库对象。
DECLARE:除了是创建只在过程中使用的临时表外,DECLARE语句和CREATE语句非常相似。唯一可以被声明的对象是表。并且必须放入用户临时表空间。
DROP:可以删除任何用CREATE(数据库对象)和DECLARE(表)创建的对象。
ALTER:允许修改某些数据库对象的信息。不能修改索引。
1, 对数据库的操作
1, 创建数据库
create database test;
create database test character set utf-8; # 设置编码
2, 查看数据库
show databases;
3, 使用数据库
use test;
4, 查看当前使用的数据库
select database();
5, 查看数据库结构
show create database test;
6, 删除数据库
drop database test;
2, 对数据表的操作
1, 建表, 格式: 列名 数据类型(长度) (约束)
create table sys_user(
id int() not null primary key auto_increment,
name char() not null,
sex int() not null default '',
degree double(,),
unique name_index(sys_user) # 创建name的唯一索引
);
建表一般预留3列, 为varchar类型, 具体看需求
2, 查询表
show sys_user; # 显示当前库下的表
desc sys_user; # 显示表结构
show create table sys_user; #
3, 删除表
drop table sys_user;
4, 数据备份 (小数据量)
create table new_user select * from sys_user;
5, 修改表结构
# 修改表名
rename table sys_user to new_user; # 添加列
alter table sys_user add addre varchar() not null; # 修改列名
alter table sys_user change sex new_sex; # 修改列类型
alter table sys_user modify addre varchar(); # 删除列
alter table sys_user drop sex;
3, 索引操作
详细见: http://www.cnblogs.com/AK2012/archive/2013/01/04/2844283.html
# 创建索引
create index name_index on sys_user(name); # 创建唯一索引
create unique index name_index on sys_user(name);
alter table sys_user add unique name_index(sys_user); # 删除索引
drop index name_index on sys_user; #查看索引
show index from sys_user;
DML
dml主要是针对数据的操作, 主要分为4大类, CRUD操作
1, 增
insert into 表名 (列1, 列2..) values ( 值1, 值2) # 一一对应即可
insert into 表名 values (值1, 值2, ..) # 和表的列一一对应
2, 删
delete from 表名; # 删除表中所有数据, auto_increment不会重置 # 加上where子句, 条件删除
delete from 表名 where money > and money < ;
3, 改
update sys_user set name='vini', sex='woman' where id=; # 不加where子句, 会全部修改
4, 查
select u.username, u.password from user u;
5, 聚合查询 ( 纵向查询, 不统计null值)
# count
select count(name) as '总数' from sys_user
select count(DISTINCT(name)) as '总数' from sys_user; # 使用distinct函数去重 # sum
select sun(IS NULL(num)) from sys_user; # 使用 is null 去除为null的 #max, min, avg
select max(money) from sys_user;
6, where 子句
比较运算符: >, < >=, <=, !=(<>)
逻辑运算符: and, or, not
在范围内: between..and..
指定值: in(值1, 值2, 值3)
模糊匹配: like
null: is not null 不为空 select * from sys_user where money > and addr like '%北京%' or money between and ;
7, 分组
group by
having: 只在在group by后面, 分组后对结果再次过滤
8, 排序
order by
更改编码集

sql-DDL, DML 常用语句的更多相关文章
- SQL DDL 数据定义语句
前言 DDL(Data Definition Language)语句:数据定义语句,这些语句定义了不同的数据段.数据库.表.列.索引等数据库对象.常用的语句关键字主要包括 create.drop.al ...
- DDL DML DCL语句
总体解释:DML(data manipulation language):自动提交的数据库操作语言 它们是SELECT.UPDATE.INSERT.DELETE,就象它的名字一样 DDL( ...
- Oracle SQL: DDL DML DCL TCL
Data Definition Language 自带commit,与表结构有关(数据字典)(会等待对象锁) Data Manipulation Language (数据文件相关变化有关,会产生锁)不 ...
- SQL Server性能常用语句
查看各表的数据行数 SELECT o.name, i. ROWS FROM sysobjects o, sysindexes i WHERE o.id = i.id AND o.Xtype = ORD ...
- [笔记] SQL性能优化 - 常用语句(一)
第一步 DBCC DROPCLEANBUFFERS 清除缓冲区 DBCC FREEPROCCACHE 删除计划高速缓存中的元素 从缓冲池中删除所有清除缓冲区.要求具有 sysadmin 固定服务器角色 ...
- sql查询的常用语句
一.基础 1.说明:创建数据库 CREATE DATABASE database-name 2.说明:删除数据库 drop database 数据库名 3.说明:备份sql server --- 创建 ...
- SQL server 查询常用语句 2019.3.20
SQL查询语句 select ...列名 from 表名 投影查询 select sno num,2019-sage as birthday // 给列起别名 from student: 在每个学生姓 ...
- [笔记] SQL性能优化 - 常用语句(二)
1.查询CPU开销大的语句 total_worker_time/execution_count AS avg_cpu_cost, plan_handle, execution_count, ( , ( ...
- SQL性能优化常用语句(摘录网上)
1.把trace文件导入到表中 , ) AS RowNumber,* into TableName FROM fn_trace_gettable('trace.trc', default) 2.查询C ...
随机推荐
- (day20)javaEE三大组件之一Servlet (简介(二)servletconfig,servletContext,session,cookie,request,response,out)
javaEE是服务器编程,javaEE提供了服务器的接口让具体的服务器去创建实现的对象 JavaEE是sun公司为了解决企业级开发定义的一套技术,只提供了规范,具体的实现是由服务器完成的 servle ...
- CentOS 5.8下快速搭建FTP服务器
学习安装和配置vsftpd: 实验环境:CentOS 5.8 x86_64 测试环境关掉防火墙和selinux. service iptables stop setenforce 0 1.安装vsft ...
- excel冻结窗格
编辑excel时冻结窗格可以大大增加可读性.每个sheet都应该加上. 第一份工作的时候,上司比较严格,还因为这个挨过几次骂.所以这个技巧大家一定要掌握 方法很简单: 选中首行:视图 -- 冻结窗格 ...
- AngularJS 路由 resolve属性
当路由切换的时候,被路由的页面中的元素(标签)就会立马显示出来,同时,数据会被准备好并呈现出来.但是注意,数据和元素并不是同步的,在没有任何设置的情况下,AngularJS默认先呈现出元素,而后再呈现 ...
- 通过mybatis向数据库中插入日期数据
遇到的问题: 通过mybatis向数据库中插入日期格式数据,发现只有年月日, 没有小时分钟和秒 当你想在实体类中使用java.util.Date类型,而且还想在数据库中保存时分秒时, 解决办法: 你可 ...
- cmd如何进入d盘
首先打开CMD 点开始 运行输入 CMD 在CMD窗口中输入 CD\(就是返回根目录) 回车 在输入 D: 即可在D盘操作状态
- [Phalcon-framework]2016-04-13_安装使用 Phalcon 框架
1. 获取你的 PHP Version,操作系统是 x86 还是 64bit的,以及 Compiler 是什么 VC, 你可以直接同时 phpinfo() 函数获取到,如下截图: 2. 下载对应的 ...
- unigui回车代替TAB
unigui回车代替TAB 在业务系统中常常使用回车键(Enter)替代Tab键完成焦点跳转,在uniGUI下,可以不用代码,直接使用TUniForm的NavigateKeys进行设置: 其中Next ...
- 利用Delphi编程控制摄像头(图)
你的电脑有没有摄像头?看到别人用QQ玩视屏你会不会去想怎么实现的?这里介绍使用DELPHI使用MS的 AVICAP32.DLL就可轻松的实现对摄像头编程,如果再加上你的网络编程水平,实现一个视屏聊天就 ...
- Crontab有关
AIX下面 0,2,4,8,10,12,14,16,18,20,22,24,26,28,30,32,34,36,38,40,42,44,46,48,50,52,54,58 * * * * /usr/s ...