SQL

数   据   库

存储数据

概念: 有组织,可共享

语句:mysql  -h 服务器主机地址 -u 用户名 - p 密码;

开始指令;net start mysql;        结束指令: net stop mysql;

创建数据库;  create database 数据库名;

删除数据库:drop database数据库名;

查看数据库;show databases;

{以分号(;)作为一条命令的结束符}

>用 create table语句在数据库里 创建一个表;步骤:

  1. 格式设置; CREATE  DATABASE  库名 CHARSET  utf8 (字体格式);
  2. 语句;CREATE TABLE 表名(

字段 1 数据类型 [字段属性 |约束][索引][注释],

字段 2 数据类型 [字段属性 |约束][索引][注释],

......

)[表类型][表字符集][注释];

** :在Cmd任务管理中查看数据库用语句已建好的表:

Cmd------> mysql  -u root  -p ----->回车

输入密码------>show databases;查看列表-------->use 数据库名;  use 表名;-------->删除数据库:DROP DATABASE 数据库名;

show tables;---------->查看表的定义: describe /DESC 表名;    

SQL:     

  1. ,  DML   (Data  Manipulation  Language  数据操作语言):

用来: 插入(INSERT) 修改(UPDATE)  删除(DELETE)数据库的数据。

2), DDL ( Data Definition Language数据定义语言):

用来;建立数据库(CREATE TABLE),数据库对象,定义数据表结构等:

3),  DQL (Data Query Language,  数据查询语言):用来对数据库中的数据进行查询 ,如SELCET,

4), DCL  (Data Control Language , 数据控制语言): 用来控制数据库组件得到存取许可,存取权限等。

***数据库基本操作***:

  1. 建库;——》 语句:CREATE DATABASE 数据库名:

××:AUTO—INCREMENT  自增语句

  1. 查看数据库列表:——》 语句:SHOW DATABASES;
  2. 选择数据库:——》语句:USE 数据库名;
  3. 删除数据库:——》语句:DROP DATABASE 数据库名:

×查看表× :SHOW tables:

》查看数据库中的表《:USE 数据库名;  DESCRIBE 表名;

》删除表《 :USE 数据库名; DROP  TABLE表名;

》修改表《  

**——〉修改表名:  ALTER TABLE 旧表名 RENAME 新表名;

**——〉添加字段:ALTER  TABLE 表名 ADD 字段名 数据类[属性];

**——〉修改字段:ALTER  TABLE 表名 CHANGE 原字段名 新字段名 数据类型 [属性];

**——〉删除字段:ALTER  TABLE 表名DROP 字段名;

——插入数据——

1; 插入单行数据:INSERT INTO  表名(字段名列表)VALUES(值列表);

  2;插入多行数据:INSERT INTO新表 (字段名列表)VALUES(值列表1),(值列表2).... ;

3:查询结果插入到新表中: CREATE TABLE 新表(SELECT 字段1,字段2,...... FROM 原表)

———更新数据———

语句: UPDATE 表名 SET列名 = 要更新值 WHERE 列名=原值 【/*内容*/】

注“:多个条件运行可用 AND  也可用 OR 或NOT

———删除数据———

  1. 用 DELETE 删除数据:

语句:  DELETE  FROM 表名 WHERE 删除条件

  1. 用TRUNCATE  TABLE 删除数据:(删除表中的所有行)

语句:TRUNCATE  TABLE 表名

———数据查询语句———

  1. 用SELECT 语句查询

*1. 查询所有的数据行和列 : SELETE * FROM 表名

*2.查询部分行和列 :

SELETE 字段列表名 FROM表名 WHERE 限制条件
{(字段列表名)符号 :“= 只”“<>不是” 比较运算符...}

*3. 分组查询 :

SELECTE 字段名1,字段名...,聚合函数 FROM  表名  GROUP  BY 字段名1,字段名...

( 字段名 聚合函数 只能是分组后的字段名)

*4,查询某个,并按顺序排列显示:

语句: SELECT字段名1. ....,聚合函数(字段名) FROM 表名 GROUP BY 字段名1,..., ORDER  BY  聚合函数(字段名) ASC (升序)或 DESC (降序)

**5. 多列分组查询

SELECT COUNT(*) 字段名,... FROM 表名 GROUP  BY 字段名,... ORDER BY 字段名

注:  在使用GROUP BY关键字时,在SELECT后面可以指定的列是有限制的,仅:1),GROUP BY子句后的列。

2), 聚合函数计算出的列。   被分组的列为每个分组返回一个值的表达式。如聚合函数计算出的列。

**6, 用HAVING 进行分组筛选

  • :SELECT  COUNT(*) 字段名.... FROM  表名 GROUP BY 字段名(要查询的字段名)
  • :SELECT  COUNT(*) 字段名.... FROM  表名 GROUP BY 字段名(要查询的字段名)HAVING 聚合函数(COUNT(*)限制条件)

/*住:HAVING是用来对分组后的数据进行筛选,将“组”看作“列”来限定条件。

  • SELECT  字段名1....,聚合函数(字段名2) FROM  表名 GROUP BY 字段名1   HAVING 聚合函数(字段名2)限制条件

HAVING 和 WHERE 可以在同一个 SELECT语句中使用,顺序:

   WHERE——》 GROUP    BY——》 HAVING

 

  • SELECT COUNT(*)字段名1, 聚合函数(字段名2),字段名.. FROM 表名   WHERE 字段名2 限制条件 GROUP BY 字段名     

HAVING  聚合函数(字段名2)限制条件  

*7, 多表连接查询(分页):

  1.       内连接查询;使用比较运算符来判断两列数据是否相等,
  1.  在 WHERE 字句中指定连接条件。

语句: SELECT 表名1 . 列表名,表名2.  列表名,...

FROM 表名1,表名2

WHERE  表名1 . 列表名 = 表名2.  列表名

  1.  在 FROM 子句中使用 INNER JOIN ...ON

语句:SELECT 表名1 . 列表名,表名2.  列表名,...

FROM 表名1

INNER JOIN 表名2 ON(两表相同的表名 相等)

  eg :    SELECT houseinfo.houseId, houseinfo.houseDesc,housetype.`typeId`,housetype.`typeName`,houseinfo.monthlyRent,houseinfo.publishDate 
 FROM houseinfo INNER JOIN housetype ON houseinfo.`typeId`=housetype.`typeId` ORDER BY houseinfo.publishDate  DESC ; 

SS:INNER(可省略) JOIN 是连接两个表。ON; 设置条件

 

  1.  外连接查询:
  1.  左外连接查询:左表为主表(被连接的)

语句: :SELECT 表名1 . 列表名,表名2.  列表名

FROM 表名1

LEFT OUTER JOIN 表名2 ON 两表相同的表名 比较运算符

  1.  右外连接查询:

语句: SELECT 表名1.列名, 表名1.列名, 表名2.列名

FROM 表名1

RIGHT OUTER JOIN 表名2  ON 表名1.列名= 表名2. 列名(列名相同)

 

SHOW VARIABLES LIKE '%max_connections%'   /*最大连接数  */

SET GLOBAL max_connections=100000; /* 修改连接数*/

SQL 编程:

局部变量:自己设置的变量,

全局变量:系统定的变量        

SELECT * FROM  表名 WHERE 字段名1 比较运算符(

SELECT  字段名1  FROM 表名 WHERE 字段名2 字段内容

)    

  范式

  1。原子性, 2, 一致性,  3,   直接依赖型

  视图:   是一种查看数据库中一个或多个表中的方法,它是一种虚拟表,没有数据,只是语句

  索引:  

  事务:

存储过程:   安全, 服务器上运行效率高,提高, 

触发器:  相当于一个约束,保证数据安全。  相当于存储过程

 游标:  数据库的值可以逐行读取进行操作

 函数:     

 

提高查询效率:

        储存过程,  索引 ,  缓存

sql语句:    根据需求查询相应的字段, 注意条件部分的顺序,  尽量不要在条件部分使用函数,尽量少用子查询和连接

   高并发:    

 

 

 

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值