数据库课堂笔记三(SQL语句)-----1

一、数据类型

数据类型含义
char (n),varchar(n)长度为n的定长字符串(最多 255 个字符。varchar如果长度大于255,则会转换为text类型)
tinyint-128 到 127 常规。0 到 255 无符号*。在括号中规定最大位数。
smallint-32768 到 32767 常规。0 到 65535 无符号*。在括号中规定最大位数。(短整数)
mediumint-8388608 到 8388607 普通。0 to 16777215 无符号*。在括号中规定最大位数。
int-2147483648 到 2147483647 常规。0 到 4294967295 无符号*。在括号中规定最大位数。
bigint-9223372036854775808 到 9223372036854775807 常规。0 到 18446744073709551615 无符号*。在括号中规定最大位数。
float(size,b)带有浮动小数点的小数字。在括号中规定最大位数。在 d 参数中规定小数点右侧的最大位数。
double(size,b)带有浮动小数点的大数字。在括号中规定最大位数。在 d 参数中规定小数点右侧的最大位数。
decimal(a,b)作为字符串存储的 DOUBLE 类型,允许固定的小数点。
date日期。格式:YYYY-MM-DD(支持的范围是从 ‘1000-01-01’ 到 ‘9999-12-31’)
datetime*日期和时间的组合。格式:YYYY-MM-DD HH:MM:SS(支持的范围是从 ‘1000-01-01 00:00:00’ 到 ‘9999-12-31 23:59:59’)
timestamo*时间戳。TIMESTAMP 值使用 Unix 纪元(‘1970-01-01 00:00:00’ UTC) 至今的描述来存储。格式:YYYY-MM-DD HH:MM:SS(支持的范围是从 ‘1970-01-01 00:00:01’ UTC 到 ‘2038-01-09 03:14:07’ UTC)
time时间。格式:HH:MM:SS 注释:支持的范围是从 ‘-838:59:59’ 到 ‘838:59:59’
year2 位或 4 位格式的年。(4 位格式所允许的值:1901 到 2155。2 位格式所允许的值:70 到 69,表示从 1970 到 2069。)

注:* 即便 DATETIME 和 TIMESTAMP 返回相同的格式,它们的工作方式很不同。在 INSERT 或 UPDATE 查询中,TIMESTAMP 自动把自身设置为当前的日期和时间。TIMESTAMP 也接受不同的格式,比如 YYYYMMDDHHMMSS、YYMMDDHHMMSS、YYYYMMDD 或 YYMMDD。

二、定义语句

create 语句
create database <数据库字>; --创建一个数据库
create table <表名><列名> <数据类型> [<列级完整性约束条件>],
<列名> <数据类型> [<列级完整性约束条件>],
...
<列名> <数据类型> [<列级完整性约束条件>]);
--创建一个表
eg1:
CREATE TABLE student(
Sno CHAR(20) PRIMARY KEY,-- 列级约束条件,主码
SName CHAR(20) UNION,   -- sname值唯一
Sex CHAR(2));



eg1:
CREATE TABLE course(
Cno CHAR(4) PRIMARY KEY, -- 列级约束条件,主码
Cname CHAR(40) NOT NULL ,-- 列级约束条件,不能为空
CPno CHAR(4)-- 先修课
FOREIGN KEY (CPno) REFERENCES course(CNo)
-- 表级约束条件,CPno是外码,被参照表course。被参照列为Cno);
drop 语句
drop database <数据库名>; --删除数据库
drop table <表名>; -- 删除表
INSERT 语句
INSERT INTO table_name 
( field1, field2,...fieldN )  --列名
VALUES
( value1, value2,...valueN ); -- 要插入的内容
注:field和value 的数量一定要对齐,value可以为空
select 语句
select li_name from bi_name; --从表中查找某列的数据
select * from bi_name;      --从表中查找全部数据
select distinct 语句
select distinct li_name from bi_name; --查询时去除重复值
where 语句
select  li_name from bi_name where li_name 运算符 值; --有条件的选取表中的数据
操作符如下	
=	等于、<>	不等于、>	大于、<	小于、>=	大于等于、<=	小于等于、between	在某个范围内、like	搜索某种模式
注释:在某些版本的 SQL 中,操作符 <> 可以写为 !=

and & or 运算符

and 和 or 可以在where子语句中把俩个或多个条件结合起来
and:如果第一条件和第二条件都成立,则and显示一条数据
or:如果第一条件和第二条件中有一条成立,则or显示一条数据

select *  from bi_name where 第一条件 and 第二条件;--and运算符
select *  from bi_name where 第一条件 or  第二条件; --or运算符
select *  from bi_name where (第一条件 or  第二条件) and 第三条件; --and 和 or运算符结合

update 更新语句

update bi_name set li_name = new_value1,li_name = new_value1
[where 选择条件];

delete 语句

delete from bi_name [where 选择条件];
-- 如果没where语句表中的数据全部删除

like 语句

select * from bi_name 
where li_name like '%关键字';

select * from bi_name 
where li_name like '%关键字%';

select * from bi_name 
where li_name like '关键字%';
-- 可以使用LIKE子句代替等号 =

group by语句

select  count(*) from bi_name where 选择条件 group by  li_name;

order by语句

order by语句用于指定的列队结果集进行排序,默认为升序排列(asc),降序使用desc关键字。
注:单纯的select 语句是以第一列的升序显示(无order by语句)
在这里插入图片描述

select name,id from sc order by name;
--以字母升序显示

在这里插入图片描述

select name,id from sc order by name desc;
--以字母降序显示

在这里插入图片描述

select name,id from sc order by name DESC;
--以数字升序显示

在这里插入图片描述

select name,id from sc order by id desc;
--以数字降序显示

在这里插入图片描述
注:如果第一列中有些值为 nulls 时,排序也是这样的。
在这里插入图片描述

null值处理

select * from bi_name where li_name is NULL;
select * from bi_name where li_name is NOT NULL;
注:!== 在这处不起作用

alter语句

alter table bi_name drop x; -- 删除x字段
注:如果表中只剩一个记录则无法删除
alter table bi_name add  y; -- 增加y字段

连接查询

select bi_name1.*,bi_name2.*
from bi_name,bi_name2
where bi_name1.x = bi_name and
bi_name1.z = m and bi_name2.l > n;
注:运算符有>,<,<>,=,>=,<=

自身连接

select x.m,y.n
from bi_name x,bi_name y
where x.m = y.n;

外连接

select file1,file2,...,file3
from bi_name1
left  join bi_name2
on bi_name1.x=bi_name2.x;

嵌套查询

 select file1,file2
from bi_name1
where x in (
		     select x
 		     from bi_name1
 		     where 选择条件);
 -- 子查询条件不依赖父查询,称为不相关子查询
 -- 子查询条件依赖父查询,称为相关子查询
  select file1,file2
from bi_name1
where x in 比较运算符(
		     select x
 		     from bi_name1
 		     where 选择条件);
 注:运算符有>,<,<>,=,>=,<=

基于派生表的查询

select file1,file2,...,file3
from bi_name1,(select file from bi_name1 [where 选择条件]) as x
where bi_name1.file = x.file;
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值