啥是SQL?

  据库的组成部分,其中数据库管理系统可以接收一些命令,对数据文件进行添加、删除、修改、查询等操作。那么这些命令就是 SQL .

  SQL:(Structured Query Language)是结构化查询语言缩写。是一门专门与数据库管理系统打交道的语言。

  SQL语言:是关系型数据库的标准语言, 其主要用于存取数据,查询数据,更新数据和管理数据库系统等操作。

  具体可以把SQL分为4个部分:

数据控制语言 ( DCL): 主要用于控制用户的访问权限。其中GRANT语句用于给用户增加权限,REVOKE语句用于收回用户的权限

数据定义语言(DDL):DROP、CREATE、ALTER等语句;数据库定义语言。主要用于定义数据库,表,视图,索引和触发器等。CREATE语句主要用于创建数据库,创建表,创建视图。ALTER语句主要用于修改表的定义,修改视图的定义。DROP语句主要用于删除数据库,删除表和删除视图等。

数据操作语言(DML):INSERT、UPDATE、DELETE语句;数据库操作语言。主要用于插入数据,更新数据,删除数据。INSERT语句用于插入数据,UPDATE语句用于更新数据,DELETE语句用于删除数据.

数据查询语言(DQL):SELECT语句。主要用于查询数据。

1.数据库

*1.创建
#create database 库名;
2.使用数据库
#use 库名; 3.查询当前库下所有的表
#show tables;
#show database; -- 显示所有数据库
*4.删除
#drop database 库名;

2.表操作

*1.创建
#create table 表名(
#  字段1 数据类型 约束条件,
#  字段1 数据类型 约束条件,
#  ) *2.删除
#drop table t1; 3.修改表
#ALTER TABLE t1 add id int not null PRIMARY key ; -- 添加字段
#ALTER TABLE t1 MODIFY salary double(10,3) not null DEFAULT 10; -- 修改字段类型与约束条件
#ALTER TABLE t1 CHANGE salary sal double(10,3) not null DEFAULT 10; --修改字段名称和类型与约束条件
#ALTER TABLE t1 DROP COLUMN sal; -- 删除指定字段
#RENAME table t1 to t5;-- 改变表名称 4.查看
#* select * from t1; -- 查询表中数据
#desc t1; -- 查看表结构
#show create table t1; -- 显示表的创建信息 5.复制表
#create table t2 select * from t1; -- 复制表结构和表数据
#* create table t3 LIKE t1; -- 只复制表结构

3.数据操作

1.增
#INSERT into t2(name,age) VALUES('小三',11); -- 指定字段插入
#INSERT into t2 VALUES('凤',13,2.5); -- 整表字段插入
#INSERT into t2 VALUES('凤',13,2.5),('凤',13,2.5),('凤',13,2.5),('凤',13,2.5),#('凤',13,2.5);
#--插入多条
#insert into t1 SELECT id,name from t2; -- 复制表数据
2.删
#delete from t2 where age = 1113;
3.改
#update t2 set name ='祝小凤' , salary = 100 where age =13;
4.查
#select * from T1; 1.简单查询
#-- 查询所有
#select * from person;
#--查询指定字段
#select name,age FROM person;
#-- 别名+字段运算
#select p.name,p.salary,p.salary+p.salary*0.1 as 'sum' from person as p
#-- 去重复查询
#select DISTINCT salary,name from person; 2.条件查询
#-- 逻辑运算符 < > <= >= != <> =
#-- is null ,is not null
#-- and OR ()
#SELECT * from person where salary >5000 or ( age <=30 AND NAME =''); 3.区间查询
#SELECT * FROM person where salary >=5000 and salary<=10000;
#-- 推荐使用 :
#--ps:前后包含
#SELECT * FROM person where salary between 5000 and 10000; 4.集合查询 in not in
#SELECT * FROM person where age = 20 or age = 23 or age =30 ;
#SELECT * FROM person where age not in(20,23,30); 5.模糊查询 like
#SELECT * FROM person where name LIKE '%月'; -- 以什么结尾
#SELECT * FROM person where name LIKE '月%'; -- 以什么开头
#SELECT * FROM person where name LIKE '%月%'; -- 包含
#SELECT * FROM person where name LIKE '_l%'; -- "_"表示占位符 6.排序
#select * from person ORDER BY salary ASC,age desc;
#-- 强制中文[排序
#select * FROM person ORDER BY CONVERT(name USING GBK) ; 7.聚合函数
#select MAX(salary) from person;
#select MIN(salary) from person;
#select AVG(salary) from person;
#select SUM(salary) from person;
#select COUNT(*) from person; 8.分组查询 GROUP BY HAVING
#select count(id),dept_id,avg(salary) from person GROUP BY dept_id HAVING avg(salary) >=5000 ;
#where 与 having区别:
#执行优先级从高到低:where > group by > having
#1. Where 发生在分组group by之前,因而Where中可以有任意字段,但是绝对不能使用聚合函数。
#2. Having发生在分组group by之后,因而Having中可以使用分组的字段,无法直接取到其他字段,可以使用聚合函数 9.分页查询 LIMIT
#SELECT * FROM person LIMIT 2,2 10.正则表达式
#SELECT * FROM person where name REGEXP '^a';
#SELECT * FROM person where name REGEXP 'n$';
#SELECT * FROM person where name REGEXP '.a';
#SELECT * FROM person where name REGEXP '[a,e,n]';
#SELECT * FROM person where name REGEXP '[^alex]';
#SELECT * FROM person where name REGEXP 'a|e';
#SELECT * FROM person where name REGEXP '^w.*i$'; 11. SQL 语句关键字的执行顺序
#执行顺序: FROM -> WHERE -> GROUP BY -> HAVING -> SELECT -> ORDER BY ->limit  

4.权限

#create user 'alex'@'127.0.0.1' IDENTIFIED by '123'; -- 创建用户
#grant SELECT,UPDATE,DELETE ON db1.* to 'alex'@'127.0.0.1';
#GRANT all PRIVILEGES ON db1.* to 'alex'@'127.0.0.1'; -- 所有权限
#FLUSH PRIVILEGES; -- 刷新权限
#update mysql.user set password=password('123456') where user='root';

MYSLQ数据库 day 1的更多相关文章

  1. InnoDB引擎Myslq数据库数据恢复

    首先祝愿看到这片文章的你永远不要有机会用到它... 本文指针对用InnoDB引擎的Mysql数据库的数据恢复,如果是其它引擎的Mysql或其它数据库请自行google... 如果有一天你手挫不小心删掉 ...

  2. mySLQ数据库 练习题

    MySQL 练习题1 DROP TABLE IF EXISTS `liuyan`; CREATE TABLE `liuyan` ( `id` int(11) NOT NULL AUTO_INCREME ...

  3. myslq数据库用union all查询出现 #1271 - Illegal mix of collations for operation 'UNION'

    出现 #1271 - Illegal mix of collations for operation 'UNION' 的原因是两个字符编码不匹配造成的. 我遇到的是  utf8_general_ci ...

  4. Jsp连接Mysql数据库取数方法

    我将Jsp连接Mysql数据库方法整理如下,供大家学习交流! 1.首先在myslq数据库中新建mldn数据库,并新建emp表.(方法不展开介绍) 插入数据如下: create table `emp` ...

  5. Win7安装mysql数据库、修改默认密码

    学习和使用myslq数据库半年时间,mysql对于每一个开发人员都不会陌生.今天对电脑重装系统,为了方面测试在个人PC上安装了mysql数据库.以一下是整个安装过程. 一.下载mysql 1.首先需要 ...

  6. 线上Mysql数据库崩溃事故的原因和处理

    前文提要 承接前文<一次线上Mysql数据库崩溃事故的记录>,在文章中讲到了一次线上数据库崩溃的事件记录,建议两篇文章结合在一起看,不至于摸不着头脑. 由于时间原因,其中只讲了当时的一些经 ...

  7. Spring+SpringMVC+MyBatis+easyUI整合进阶篇(八)线上Mysql数据库崩溃事故的原因和处理

    前文提要 承接前文<一次线上Mysql数据库崩溃事故的记录>,在文章中讲到了一次线上数据库崩溃的事件记录,建议两篇文章结合在一起看,不至于摸不着头脑. 由于时间原因,其中只讲了当时的一些经 ...

  8. Eclipse使用jdbc连接MySql数据库报:java.sql.SQLException: Access denied for user 'root'@'localhost' (using password: YES)

    在使用eclipse连接mysql数据库时报异常: java.sql.SQLException: Access denied for user 'root'@'localhost' (using pa ...

  9. 阿里java开发规范 强制约束

    http://news.51cto.com/art/201901/591018.htm  :阿里开发强制要求的11条索引创建规范,提高性能 https://blog.csdn.net/Lujunwei ...

随机推荐

  1. oracle函数大全-字符处理函

    字符函数——返回字符值 这些函数全都接收的是字符族类型的参数(CHR 除外)并且返回字符值.除了特别说明的之外,这些函数大部分返回VARCHAR2类型的数值.字符函数的返回类型所受的限制和基本数据库类 ...

  2. MVC缺点总结

    MVC的缺点: 1.完全理解MVC比较复杂. 由于MVC模式提出的时间不长,加上同学们的实践经验不足,所以完全理解并掌握MVC不是一个很容易的过程. 2.调试困难. 因为模型和视图要严格的分离,这样也 ...

  3. 吴裕雄 24-MySQL 索引

    MySQL索引的建立对于MySQL的高效运行是很重要的,索引可以大大提高MySQL的检索速度.打个比方,如果合理的设计且使用索引的MySQL是一辆兰博基尼的话,那么没有设计和使用索引的MySQL就是一 ...

  4. atrous convolution

    atrous convolution 简而言之,带孔卷积: 来自:https://zhuanlan.zhihu.com/p/27470685 假设一个二维信号,每个位置对应的输出为和卷积核为,带孔卷积 ...

  5. 清除 idea 缓存

    idea最好选择  付费版本 ,稳定一点~ 不要选择社区版 1.问题使用idea启动项目时,报如下错误:Intellij Error: Internal caches are corrupted or ...

  6. svn:Cannot negotiate authentication mechanism

    解决方案:在eclipse->window->preference->team->svn中将svn接口设定为svnkit.

  7. kubectl windows

    https://storage.googleapis.com/kubernetes-release/release/v1.10.3/bin/windows/amd64/kubectl.exe

  8. Linux下怎么创建和进入带有空格的文件夹

    有时候需要创建带有空格的文件夹,虽然这不是一个好的习惯,但是偶尔会遇到.用的最多的是很多时候需要进入带有空格的文件夹,如"a b"是一个文件夹名. 创建:mkdir "a ...

  9. editplus设置自动换行方法 editplus自动换行设置步骤

    原文链接:https://www.jb51.net/softjc/165897.html 发布时间:2014-05-14 17:03:54   作者:佚名    我要评论 editplus自动换行设置 ...

  10. python网络编程之C/S架构介绍

    标签(空格分隔): c/s架构介绍 什么是C/S架构 C指的是client(客户端软件),S指的是Server(服务端软件),后续我们可以试着写个c/s软件实现服务器软件与客户端软件基于网络通信: 计 ...