MYSQL

SQL语言(结构化查语言)是一种特殊的目的的编程语言,用于存取数据,查询数据,更新管理数据库系统

优点:市面上大多数的DBMS都支持SQL,简单易学,灵活,可以使用高级的数据库操作

数据库定义语言(DDL)用于数据的创建,修改

功能:

创建数据库
CREATE DATABASE IF NOT EXIXTS scholldb CHARSET utf8

删除数据库
DROP DATABASE IF EXISTS schooldb

修改字符集
ALTER DATABASE schooldb CHARSET qbk

需注意在创建表之前要确定:

表名,表中的 字段以及字段的类型和长度,表中的相关约束

SQL中的数据类型

char(n)    长度为n的定长字符串,最大长度为255
 varchar(n)最大长度为n的可变字符串
   date 日期 年月日
  datetime 日期 年月日时分秒

 数据类型:
              TINYINT
              SMALLINT
              MEDIUMINT
              INT
              BIGINT

              deciaml
              数据类型(M,D)
                  M:精度,数据的总长度
                  D:标度,小数点后的长度

            排序 asc 升序 desc 降序

添加约束

PRIMARY KEY -- 设置为主键
 
AUTO_INCREMENT -- 设置主键列自然增长,只能修饰主键列,而且主键列类型为整数
 
not null  -- 不能为空约束 可以添加到多个普通列
 
unique  -- 唯一性约束     可以添加到多个普通列
 
check (height<2.1) -- 检查约束

DML(数据库操纵语言)

插入(insert) 删除(delete) 更新(update)

insert:常用于建表后插入数据

插数据入的相关方法
方式1: INSERT INTO 表名( 1, 2……, n) VALUES( 1, 值2…..,值n);
INSERT INTO epmloyee (id,NAME,gender,age,money,deptid) VALUES('1','王五','男','25','3000','1')
方式2: INSERT INTO 表名 set 列名 1= 1,.. 列名n=值n;
INSERT INTO student SET num=2,NAME='张三',gender='男',phone=12345678934,height=1.82;
方式3: INSERT INTO 表名( 1, 2……, n) VALUES( 1, 2….., n),( 1, 值2…..,值n);
INSERT INTO student (num,NAME,gender,phone,height) VALUES(3,'张三','男',12345678912,1.72),
方式4:INSERT INTO 表名( 1, 2……, n) 查询语句(查询的列数与插入列数匹配)

INSERT INTO stu (num,NAME,gender,phone,height)

修改数据
UPDATE 表名 SET 列名 = ‘新值’WHERE 条件
删除数据
DELETE FROM 表名 WHERE 条件
TRUNCATE TABLE 表名;清空整张表
DQL(基础查询)
数据查询语言查询是使用频率最高的一个操作,
可以从一个表中查询数据,也可以从多个表中查询数据。
语法
  select 查询列表 from 表名 ;
特点:
 查询列表可以是:表中的字段、常量、表达式、函数
 查询的结果是一个虚拟的表格
实例
SELECT * FROM epmloyee WHERE money > (   SELECT  AVG(money) FROM epmloyee  )
sum()称为聚合函数,把多行数据放到一个
条件查询: 使用WHERE语句 后跟FROM字句
语法 :
     select <结果>from <表名> where <字句>
示例
SELECT *
FROM playerinformation
WHERE 身高>=190 AND 身高<=220
逻辑运算
and
or
not
分组查询
  
select 分组函数,列(要求出现在 group by 的后面)
from
[where 筛选条件 ]
group by 分组的列表
[having 分组后的筛选 ]
[order by 子句 ]
示例
SELECT YEAR (生日)AS 年份,COUNT(1)AS 球员数量
FROM playerinformation
WHERE YEAR(生日)='1982'
GROUP BY YEAR(生日)

关联查询
含义:又称多表查询,当查询的字段来自于多个表时,就会用到连接查询

发生原因:没有有效的连接条件

如何避免:添加有效的连接条件

按功能分类:

1.自连接

2.内连接

3.外连接

左外连接:将左边的表中的全部列都列出来,右边的只列出满足条件的

右外连接:将右边的表中的全部列都列出来,左边的只列出满足条件的

子查询
含义:出现在其他语句中的select语句,称为子查询或内查询;外部的查询语句,称为主查询或外查询.

在一个查询语句中又出现了查询语句

分类:

按子查询出现的位置:

from后面:支持表子查询

where:支持标量子查询,列子查询

按功能、结果集的行列数不同:

标量子查询(结果集只有一行一列)

列子查询(结果集只有一列多行)

表子查询(结果集一般为多行多列)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值