两天学完MySQL的一些笔记,让建库到跑路不在只是个梗

sql笔记 重要提醒:每行语句结尾都要;

w3school学习网址http://www.w3school.com.cn/sql/index.asp

数据库安装我这就不介绍了,我用的是MySQL5.6版本。学习过程推荐按照w3c的教程过一遍,学习的时候多动脑子思考问题,其实MySQL也不过如此。

图片发自简书App


单词:Constraint 约束   primary 主要的   references 参考   alter 改变   duplicates 副本   Records 记录   affected 受影响的   Warnings 警告   truncate 缩短/清空

    连接 musql -u root -p

创建 create database mypig;

删除 drop database mypig;

使用表 use pig;

显示所有数据库 show databases;

创建表 create table pig_tbl(     pig_id int not null auto_increment,     pig_name varchar(100) not null,     pig_age int not null,     pig_author varchar(50) not null,     create_time date,     primary key(pig_id)     ); create table layui(     id int not null auto_increment,     name varchar(10) not null,     primary key(id)     );

删除表 DROP TABLE layui; 插入数据 insert into pig_tbl     (pig_name,pig_age,pig_author,create_time)     values     ("parper",26,"your",NOW());

查询数据 1.select pig_name,pig_id from pig_tbl where(pig_age>22);

2.select * from pig_tbl where pig_author="xiaoxi";

关键字 binary 区分大小写 select * from pig_tbl where binary pig_author="Xiaoxi";

更新数据

update pig_tbl set pig_name="top" where pig_id =4;

取唯一的值 select distinct pig_author from pig_tbl; 用多个作为唯一条件 select distinct pig_author,pig_id,pig_name from pig_tbl;

打包作者为一组 select pig_id,pig_name,pig_author from pig_tbl group by pig_author;

AND 运算符实例 select pig_id,pig_name from pig_tbl where pig_author='xiaoxi' and pig_id=5;

按年龄排序 select pig_name,pig_age from pig_tbl where(pig_age>=24) order by pig_age;

规定返回的记录的数目 select pig_name from pig_tbl limit 3;

模糊查询 select * from pig_tbl where pig_name like '%o%';

模糊使用not不包括 select * from pig_tbl where pig_name like '%o%';

使用 _ 通配符 select *  from pig_tbl where pig_name like 'p_r_e_';

WHERE子句中规定多个值,表中选取xx和xx的值: select *  from pig_tbl where pig_name in ('book','parper');

BETWEEN ... AND... 取两个值之间的数据范围 select *  from pig_tbl where pig_age between 24 and 30;

not between取两个值之间的数据之外 select *  from pig_tbl where pig_age not between 24 and 30;

使用as 设置列别名 select pig_id as id,pig_name as name,pig_age as age  from pig_tbl where pig_age not between 24 and 30;

引用两个表,以id为主键关联 select pig_id, pig_tbl.pig_name,layui.name from pig_tbl,layui where pig_tbl.pig_id=layui.p_id;

使用别名查询 select p.pig_id, p.pig_name,l.name from pig_tbl as p,layui as l where p.pig_id=l.p_id;

使用inner join 内联接,id 倒叙 select p.pig_id as id, p.pig_name,l.name from pig_tbl as p inner join layui as l where p.pig_id=l.p_id order by id;

左联left join xxx on select p.pig_id as id, p.pig_name,l.name from pig_tbl as p left join layui as l on p.pig_id=l.p_id order by id;

union合并多条select结果集 合并两个集合的name select name from layui union select name from layui2;

UNION ALL 列出所有的值 select name from layui union all select name from layui2;

一个表中选取数据,然后把数据插入另一个表中

create table new_pig (select pig_id,pig_name from pig_tbl where(pig_age>25));

删库

drop database my_db;

SQl建表时添加的约束------- NOT NULL 约束强制列不接受 NULL 值。 UNIQUE 约束唯一标识数据库表中的每条记录。

PRIMARY KEY 约束唯一标识数据库表中的每条记录。   添加UNIQUE 约束命名,以及为多个列定义 UNIQUE 约束

create table perfire(     id int(10) not null,     firsetName varchar(255),     lastName varchar(255),     city varchar(100),     address varchar(100), constraint uc_persionId unique(id,firsetName) );

添加 UNIQUE 约束

alter table layui2 add unique (id);

撤销 UNIQUE 约束

alter table layui2 drop unique (id);

如果已有主建会报错Multiple primary key defined,先删除再添加 添加主键约束

alter table perfire add constraint primary key (id,city);

删除主键约束

alter table perfire drop primary key; FOREIGN KEY 外键约束 --外键必须是另一个参考表的主键

create table orders(     id_o int not null,     order_no int not null,     id_p int(10) not null,     primary key (id_o),     constraint fk_per foreign key (id_p)     references layui2(id)     );

删除foreign key外键约束

alter table orders drop foreign key fk_per;

添加外键

alter table orders add foreign key (id_o) references layui2(id);

设置default约束

alter table layui alter name set default 'liuzhou';

撤销default约束

alter table layui alter name drop default;

添加索引

create index p_sion on layui (p_id desc);

降序索引某个列中的值

create index p_sion_2 on layui (p_id,id);

多个用逗号隔开 撤销索引

alter table layui drop index p_sion;

仅删除表内的数据

truncate table lay2;

给表添加新列 alter table layui2 add birthday date; alter table layui2 add passtest int(4) default '0';

修改列的数据类型 alter table layui2 modify column pt varchar(50) default 'beijing';

修改列的名字,数据类型 alter table layui2 change column pts city varchar(66);

删除表的某列 alter table layui2 drop column datree;

每次插入新记录时,自动地创建主键字段的值。 在建表时给主键添加字段--AUTO INCREMENT CREATE TABLE Product( P_Id int NOT NULL AUTO_INCREMENT, City VARCHAR(255), PRIMARY KEY (P_Id) );

视图是基于 SQL 语句的结果集的可视化的表 create view view_pig as select * from pig_tbl;

日期时间 函数 描述

NOW() 返回当前的日期和时间 select now();

CURDATE() 返回当前的日期 select curdate();

CURTIME() 返回当前的时间 select CURTIME();

DATE() 提取日期或日期/时间表达式的日期部分

select date('2008-12-29 16:25:46.635');

EXTRACT() 返回日期/时间按的单独部分 select extract(year from '2008-12-29 16:25:46.635');

DATE_ADD() 给日期添加指定的时间间隔 select date_add('2019-04-01',interval 6 year);

DATE_SUB() 从日期减去指定的时间间隔 select pig_id,pig_name,date_sub(create_time,interval 2 day) as date from pig_tbl;

DATEDIFF() 返回两个日期之间的天数 select datediff('2019-04-01','2019-04-04');

DATE_FORMAT() 用不同的格式显示日期/时间 select date_format(now(),'%Y-%m-%d %h:%i') as format;

来个日期用法查询集合 SELECT now() AS now, curtime() AS curtime, curdate() AS curtime, date_format(now(), '%Y-%m-%d %h:%i') AS format, date_add('2019-04-01', INTERVAL 6 YEAR) AS date_add, datediff('2019-04-01', '2019-04-04') AS datediff, extract( YEAR FROM '2008-12-29 16:25:46.635' ) AS extract, date('2008-12-29 16:25:46.635') AS date, pig_id, pig_name, date_sub(create_time, INTERVAL 2 DAY) AS date_sub FROM pig_tbl LIMIT 1;

+---------------------+----------+------------+------------------+------------+----------+---------+------------+--------+-----------+------------+ | now                | curtime  | curtime    | format          | date_add  | datediff | extract | date      | pig_id | pig_name  | date_sub  | +---------------------+----------+------------+------------------+------------+----------+---------+------------+--------+-----------+------------+ | 2019-04-04 14:10:33 | 14:10:33 | 2019-04-04 | 2019-04-04 02:10 | 2025-04-01 |      -3 |    2008 | 2008-12-29 |      1 | pig_green | 2019-03-30 | +---------------------+----------+------------+------------------+------------+----------+---------+------------+--------+-----------+------------+ tyep参数可选值

MICROSECOND

SECOND

MINUTE

HOUR

DAY

WEEK

MONTH

QUARTER

YEAR

SECOND_MICROSECOND

MINUTE_MICROSECOND

MINUTE_SECOND

HOUR_MICROSECOND

HOUR_SECOND HOUR_MINUTE

DAY_MICROSECOND DAY_SECOND

DAY_MINUTE

DAY_HOUR

YEAR_MONTH

选取某列中带有 NULL 值的记录 select * from layui2 where pt is null;

IFNULL() 函数,如果为空,可以返回0方便计算

select p_id+(id+ifnull(passtest,0)) as sum from layui2; coalesce的,作用是将返回传入的参数中第一个非null的值

select p_id+(id+coalesce(count,0)) as sum from layui2; select coalesce (null,null,1);

函数 avg()平均值 select avg(p_id) as avg from layui2; count() 返回指定列的数目 select count(*) from layui2;

max()返回该列最大值 select max(p_id) from layui2;

min()返回该列最小值 select min(p_id) from layui2;

sum()返回该列总数 select sum(p_id) from layui2;

GROUP BY 语句--根据一个或多个列对结果集进行分组 select pig_name ,sum(pig_age),pig_author from pig_tbl group by pig_author;

查找sum()年龄大于50 的作者 select pig_name,pig_author as author,sum(pig_age) from pig_tbl group by author having sum(pig_age)>50;

UCASE 函数把字段的值转换为大写 select ucase(name) from layui2;

LCASE 函数把字段的值转换为小写。 select lcase(name) from layui2;

MID 函数用于从文本字段中提取字符 select mid(name,1,3) as c_name from layui2;

length()返回该列值得字符长度 select length(name) as len from layui2; ROUND 函数用于把数值字段舍入为指定的小数位数。 select name, round(p_id,1) as unit from layui2; 

©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 216,372评论 6 498
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 92,368评论 3 392
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 162,415评论 0 353
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 58,157评论 1 292
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 67,171评论 6 388
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 51,125评论 1 297
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 40,028评论 3 417
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 38,887评论 0 274
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 45,310评论 1 310
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 37,533评论 2 332
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 39,690评论 1 348
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 35,411评论 5 343
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 41,004评论 3 325
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 31,659评论 0 22
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,812评论 1 268
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 47,693评论 2 368
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 44,577评论 2 353

推荐阅读更多精彩内容

  • MYSQL 基础知识 1 MySQL数据库概要 2 简单MySQL环境 3 数据的存储和获取 4 MySQL基本操...
    Kingtester阅读 7,809评论 5 116
  • ORACLE自学教程 --create tabletestone ( id number, --序号usernam...
    落叶寂聊阅读 1,077评论 0 0
  • 什么是数据库? 数据库是存储数据的集合的单独的应用程序。每个数据库具有一个或多个不同的API,用于创建,访问,管理...
    chen_000阅读 4,035评论 0 19
  • pyspark.sql模块 模块上下文 Spark SQL和DataFrames的重要类: pyspark.sql...
    mpro阅读 9,451评论 0 13
  • 美丽,一般是指人外貌的漂亮,但我今天不是讲这个,而是指人心灵的美丑,具体来说就是诚信,诚信,是一个人的基础品质,德...
    王紫燕阅读 225评论 1 1