一:数据查询语言(DQL),Data Query Language,用以从表中获取数据,确定数据怎样在程序中给出。SELECT是DQL中用的最多的!
select user,host,password from mysql.user order by user asc;
select user,host,password from mysql.user order by user desc;
二:数据操作语言(DML),Data Manipulation Language,包括INSERT, UPDATE和DELETE。
delete from mysql.user where user='myname';
三:事物处理语言(TPL),它的语句能确保被DML语句影响的表的所有行及时得更新。TPL语句包括BEGIN, TRANSACTION, COMMIT和ROLLBACK。
四:数据控制语言(DCL),DCL全称是Data Control Language,包括GRANT或REVOKE。
五:数据定义语言(DDL),Data Definition Language,其语句包括create和DROP。
六:指针控制语言(CCL),DECLARE CURSOR,FETECH INTO等
最后可以总结为如下:

SQL常见操作
1:创建数据库
create database myyang DEFAULT CHARACTER SET utf8 COLLATE utf8_general_ci;
show create database myyang;
2:查看当前使用的数据库
select database();
select version();
select user();
select now();
3:删除数据库
drop database myyang;
4:进入数据库
use myyang;
5:使用-e参数不进入数据库执行命令
mysql -uroot -p123456 -e "show grants for myyang@localhost;"
6:回收权限
REVOKE INSERT ON test.* FROM 'myyang'@'localhost';
7:MySQL的权限
1 SELECT,
2 INSERT,
3 UPDATE,
4 DELETE,
5 CREATE,
6 DROP,
7 REFERENCES,
8 INDEX,
9 ALTER,
10 CREATE TEMPORARY TABLES,
11 LOCK TABLES,
12 EXECUTE,
13 CREATE VIEW,
14 SHOW VIEW,
15 CREATE ROUTINE,
16 ALTER ROUTINE,
17 EVENT,
18 TRIGGER
8:建表示例
create table student(id int(4) not null, name char(20) not null, age tinyint(2) not null default '0', dept varchar(16) default null) ENGINE=InnoDB DEFAULT CHARSET=utf8;

索引
  • 主键索引
create table student2(
id int(4) not null AUTO_INCREMENT,
name char(20) not null,
age tinyint(2) NOT NULL
dept varchar(16) default NULL,
primary key(id),
KEY index_name(name)
);
PS: primary key(id) 是主键
KEY index_name(name) name字段普通索引
alter table student2 drop primary key; 删除主键
alter table student2 change id id int primary key auto_increment;
利用alter命令修改id列为自增主键
  • 普通索引
KEY index_name(name)
index_name 是索引的名字
name是创建普通索引的字段
alter table student2 drop index index_name;删除索引
alter table student2 add index index_name(name);添加索引
对前n个字符简历索引
create index index_dept on student2(dept(8));
对dept列的前8个字符创建索引
show index form student2;
查看索引
对表的多个字段创建联合索引
create index ind_name_dept on student2(name,dept);
ps:联合索引允许列上有自己的索引
也可以使用drop来删除索引
drop index ind_name_dept on student2;
对多个列的前n个字符创建索引
create index ind_name_dept on student(name(8),dept(10));
联合索引是有前缀生效条件的
index(a,b,c)仅a,ab,abc三个查询条件可以走索引,b,bc,ac,c等无法使用索引了
  • 唯一索引
创建唯一索引,插入的时候必须唯一,多用于邮箱注册
create unique index uni_index_name on student(name);
索引列的创建及生效条件
  1. 索引占用系统空间,更新数据库时需要维护索引数据,索引并不是越多越好,更新频繁读取较少的表要少建立索引
  2. 索引一定要创建在where后的条件列上,而不是select后选择的数据列,尽量选择在唯一值多的大表上建立索引
插入数据
create table test(id int(4) not null AUTO_INCREMENT,name varchar(20) not null, PRIMARY KEY(id));
1:指定所有列明然后给数据
insert into test(id,name) values(1,'ob');
2:由于主键是自增的,因此只需要给name列
insert into test(name) values('oc');
3:不指定列,必须按照列的对应一个一个给值,也不能省掉自增列
insert into test values(3,'od');
insert into test values(4,'oe'),(5,'of');
备份数据库
mysqldump -uroot -p123456 -B test > /opt/test.sql
查看备份的sql语句
grep -E -v "#|\/|^$|--" /opt/test.sql
dump是逻辑备份,把sql的数据以sql的命令形式导出
查询数据
select * from test;
select id,name from test;
ps:不建议用*
查询两个
select id,name from test limit 2;
select id,name from test limit 0,2;从0开始查查询两个
select id,name from test where id=1;
select id,name from test where name='od';字符串类型的查询条件需要引号
select id,name from test where name='od' and id=3; and代表两遍都要成立
select id,name from test where name='od' or id=5;or代表或
select id,name from test where id>2 and id<4;
select id,name from test order by id asc; asc是升序
select id,name from test order by id desc; desc是降序
连表查询
1:创建学生表
mysql> create table student(
-> Sno int(10) NOT NULL COMMENT '学号',
-> Sname varchar(16) NOT NULL COMMENT '姓名',
-> Ssex char(2) NOT NULL COMMENT '性别',
-> Sage tinyint(2) NOT NULL default '0' COMMENT '学生年龄',
-> Sdept varchar(16) default NULL COMMENT '学生所在系别',
-> PRIMARY KEY (Sno),
-> key index_Sname (Sname));
2:创建课程表
mysql> create table course( -> Cno int(10) NOT NULL COMMENT '课程号',
-> Cname varchar(64) NOT NULL COMMENT '课程名',
-> Ccredit tinyint(2) NOT NULL COMMENT '学分',
-> PRIMARY KEY (Cno));
3:选课表
mysql> create table SC(
-> SCid int(12) NOT NULL AUTO_INCREMENT COMMENT '主键',
-> Cno int(10) NOT NULL COMMENT '课程号',
-> Sno int(10) NOT NULL COMMENT '学号',
-> Grade tinyint(2) NOT NULL COMMENT '学生成绩',
-> PRIMARY KEY (Scid));
4:插入数据
insert into student values(0001,'赵信','男',30,'计算机网络');
insert into student values(0002,'盖伦','男',30,'Python');
insert into student values(0003,'孙悟空','男',30,'Java');
insert into student values(0004,'亚索','男',30,'Go');
insert into student values(0005,'提莫','女',6,'.net');
insert into student values(0006,'金克斯','女',6,'shell'); insert into course values(1001,'Linux运维',3);
insert into course values(1002,'Python开发',5);
insert into course values(1003,'Java开发',4);
insert into course values(1004,'.NET开发',4);
insert into course values(1005,'Go开发',4);
insert into course values(1006,'shell开发',3); insert into SC(Sno,Cno,Grade) values(0005,1004,9);
insert into SC(Sno,Cno,Grade) values(0004,1003,6);
insert into SC(Sno,Cno,Grade) values(0003,1002,1);
insert into SC(Sno,Cno,Grade) values(0002,1001,3);
insert into SC(Sno,Cno,Grade) values(0001,1005,6);
insert into SC(Sno,Cno,Grade) values(0006,1006,6); 5:连表查询
select student.Sno,student.Sname,course.Cname,SC.Grade from student,course,SC where student.Sno=SC.Sno and course.Cno=SC.Cno order by Sno;

SQL-结构化查询语言(1)的更多相关文章

  1. SQL 结构化查询语言

    SQL 结构化查询语言 一.数据库的必要性: >>作用:存储数据.检索数据.生成新的数据 1)可以有效结构化存储大量的数据信息,方便用户进行有效的检索和访问. 2)可以有效地保持数据信息的 ...

  2. SQL结构化查询语言

    一.SQL 结构化查询语言 1.T-SQL 和 SQL的关系 T-SQL是SQL的增强版 2.SQL的组成 2.1 DML (数据操作语言) 增加,修改,删除等数据操作 2.2 DCL (数据控制语言 ...

  3. SQL查询--简单了解SQL(结构化查询语言)

    以下内容是从其他地方摘抄过来的哈,原文地址忘记了,当时把内容记在了笔记中 SQL分类: 数据查询语言(DQL) 数据定义语言(DDL) 数据操纵语言(DML) 数据控制语言(DCL) 1.数据查询语言 ...

  4. SQL 结构化查询语言手册

    摘自该学习网站: http://www.w3school.com.cn/sql/ 新学到的几点: and 和or 连用,记得用括号.                2.SQL通配符补充   例如:   ...

  5. 基于oracle的sql(结构化查询语言)指令

    创建表空间 create tablespace 表空间名 datafile '存储路径(c:\a\a.dbf)' size 200m autoextend on next 10m maxsize un ...

  6. 关于SQL结构化查询语言中(+)的用法

    一.概述 (+):从符号上理解为添加一些内容进入结果集中,那么自然会问到这么几个问题 1.添加什么内容 2.怎么添加 3.添加到什么结果集中 以下内容将以实例说明上面3个问题. 二.实例 以Oracl ...

  7. SQL 数据库结构化查询语言

    1.数据库 常见数据库 MySQL:开源免费的数据库,小型的数据库. Oracle:收费的大型数据库,Oracle 公司的产品 DB2:IBM 公司收费的数据库,常应用在银行系统中 SQLServer ...

  8. 简单了解SQL(结构化查询语言)

    简单了解SQL(结构化查询语言) 年10月,美国国家标准学会对SQL进行规范后,以此作为关系式数据库管理系统的标准语言(ANSI X3. 135-1986),1987年得到国际标准组织的支持下成为国际 ...

  9. 数据库入门4 结构化查询语言SQL

    知识内容: 1.了解SQL 2.库.表操作及索引 3.select语句及insert语句 4.update语句与delete语句 5.SQL常用函数 6.多表连接及组合查询 7.视图操作及数据控制 参 ...

  10. SQL Structured Query Language(结构化查询语言) 数据库

    SQL是Structured Query Language(结构化查询语言)的缩写. SQL是专为数据库而建立的操作命令集,是一种功能齐全的数据库语言. 在使用它时,只需要发出“做什么”的命令,“怎么 ...

随机推荐

  1. 基于类(Java)和基于原理(JavaScript)的对象系统的比较

    Java:面向对象编程语言,吸收了C++语言的各种优点,丢掉了C++让人头疼的多继承.指针等概念.具有功能强大和简单易用的两大特征.Java具有简单性.面向对象.分布式.健壮性.安全性.平台独立与可移 ...

  2. Python Tkinter学习(1)——第一个Tkinter程序

    注:本文可转载,转载请注明出处:http://www.cnblogs.com/collectionne/p/6885066.html.格式修改未完成. Tkinter资料 Python Wiki, T ...

  3. 机器学习:Python实现聚类算法(三)之总结

    考虑到学习知识的顺序及效率问题,所以后续的几种聚类方法不再详细讲解原理,也不再写python实现的源代码,只介绍下算法的基本思路,使大家对每种算法有个直观的印象,从而可以更好的理解函数中参数的意义及作 ...

  4. SQL万能语句-经典操作

    一.基础 1.说明:创建数据库CREATE DATABASE database-name 2.说明:删除数据库drop database dbname3.说明:备份sql server--- 创建 备 ...

  5. CEF3 获取Cookie例子 CefCookieManager C++

    首先从cef_cookie.h 源码种看到CefCookieManager 这个类: // Visit all cookies on the IO thread. The returned cooki ...

  6. profiler内存优化:警惕回调函数

    最近做profiler内存优化,踩了一个深坑,觉得有必要做一下笔记. 过程是这样的,游戏启动后,会启动更新模块,加载更新界面,更新检测完成后会切换场景进入登陆界面.切换场景会自动释放上一个场景的资源. ...

  7. BOM(1)

    BOM 浏览器对象模型(Browser Object Model),使浏览器对象模型 (BOM) 使 JavaScript 有能力与浏览器"对话". 浏览器对象模型(Browser ...

  8. Markdown常用语法对应

    这是一遍备忘录,当忘记Markdown的语法的时候,就到这里来参照. 第一部分是markdown的语法,紧接着就是该语法的效果. 代码语法高亮 ```javascript function synta ...

  9. zookeeper-开始

    ZooKeeper:为分布式应用提供的分布式协调服务 ZooKeeper提供一系列原语用于分布式应用构建更高层次的服务,如同步.配置维护.分组以及命名空间. 设计目标: ZooKeeper足够简单且可 ...

  10. Realm的简单使用

    Realm个人理解: 它主要是一套移动端数据库框架,将对数据库表的操作转换为对对象的操作,如果是学过Java ORM框架的同学使用Realm起来应该上手比较快一点.而且据我所知Realm不仅支持Obj ...