一:数据查询语言(DQL),Data Query Language,用以从表中获取数据,确定数据怎样在程序中给出。SELECT是DQL中用的最多的!
  1. select user,host,password from mysql.user order by user asc;
  2. select user,host,password from mysql.user order by user desc;
二:数据操作语言(DML),Data Manipulation Language,包括INSERT, UPDATE和DELETE。
  1. 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. 1:创建数据库
  2. create database myyang DEFAULT CHARACTER SET utf8 COLLATE utf8_general_ci;
  3. show create database myyang;
  4. 2:查看当前使用的数据库
  5. select database();
  6. select version();
  7. select user();
  8. select now();
  9. 3:删除数据库
  10. drop database myyang;
  11. 4:进入数据库
  12. use myyang;
  13. 5:使用-e参数不进入数据库执行命令
  14. mysql -uroot -p123456 -e "show grants for myyang@localhost;"
  15. 6:回收权限
  16. REVOKE INSERT ON test.* FROM 'myyang'@'localhost';
  17. 7MySQL的权限
  18. 1 SELECT,
  19. 2 INSERT,
  20. 3 UPDATE,
  21. 4 DELETE,
  22. 5 CREATE,
  23. 6 DROP,
  24. 7 REFERENCES,
  25. 8 INDEX,
  26. 9 ALTER,
  27. 10 CREATE TEMPORARY TABLES,
  28. 11 LOCK TABLES,
  29. 12 EXECUTE,
  30. 13 CREATE VIEW,
  31. 14 SHOW VIEW,
  32. 15 CREATE ROUTINE,
  33. 16 ALTER ROUTINE,
  34. 17 EVENT,
  35. 18 TRIGGER
  36. 8:建表示例
  37. 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;

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

    源码: nginx 1.13.0-release   一.前言      nginx是采用多进程模型,master和worker之间主要通过pipe管道的方式进行通信,多进程的优势就在于各个进程互不影 ...

  2. 关于jQuery表单选择中prop和attr的区别。

    今天用jQuery学习表单这一章节的内容,再次遇到表单全选时,不能进行第二次全选的情况.反复查看测试仍然找不到是什么原因.后来在网上查到原来是jQuery1.6以后的版本用到的是prop.用attr的 ...

  3. centos7下,解决Apache错误日志文件过大问题

    1,日志文件太大问题   第一步:停止Apache服务的所有进程,删除 /var/log/httpd目录下的 error.log.access.log文件 第二步:打开 /etc/httpd/conf ...

  4. php笔记一

    一.Login登陆验证步骤: 1.赋值,用$_POST将id和password传递给loginProcess.php登陆验证页面. 2.建立数据库连接 $conn=mysql_connect($hos ...

  5. poj3648

    poj3648 题意 有一对新人结婚,n-1对夫妇去参加婚礼.有一个很长的座子,新娘与新郎坐在座子的两边(相反).接下来n-1对夫妇就坐,其中任何一对夫妇都不能坐在同一边,且(有一些人有奸情)这些有奸 ...

  6. JavaScript中Object的总结

    基于原型继承,动态对象扩展,闭包,JavaScript已经成为当今世界上最灵活和富有表现力的编程语言之一. 这里有一个很重要的概念需要特别指出:在JavaScript中,包括所有的函数,数组,键值对和 ...

  7. 简单vue项目脚手架(vue+webpack2.0+vuex+vue-router)

    github地址 使用技术栈 webpack(^2.6.1) webpack-dev-server(^2.4.5) vue(^2.3.3) vuex(^2.3.1) vue-router(^2.5.3 ...

  8. Day1 - Python基础1 Python介绍、基本语法、流程控制习题集

    1.打印Hello World! print("Hello World!") 或 name="你好,世界!" print(name) 2.声明变量:打印name ...

  9. Chapter 7:Statistical-Model-Based Methods

    作者:桂. 时间:2017-05-25  10:14:21 主要是<Speech enhancement: theory and practice>的读书笔记,全部内容可以点击这里. 书中 ...

  10. Java(17)异常

    一.异常 1.1程序执行过程中出现的影响程序运行正常运行的现象.  1.2异常语法 try{ //代码块 }catch(异常类型 e){ }catch(异常类型 e){ }...{ }finally{ ...