文档章节

     甲骨人-MySQL网络课-day03

hnairdb
 hnairdb
发布于 2018/10/23 20:23
字数 852
阅读 6
收藏 1


                      
=====================================================================================
=======================
第三章 mysql SQL语句
1、mysql接口自带命令

1.1、\h 或 help 或 ?
1.2、\G
1.3、\T 或 tee
1.4、\c 或 CTRL+c
1.5、\s 或 status
1.6、\. 或 source
1.7、\u 或use

2、SQL语句种类介绍
SQL92 SQL99:
DDL
DML
DCL
DQL

3、DDL:数据定义语言
3.1 介绍:
逻辑结构:
库(库名字、库的属性)、表(表名、表的列(列名字、列属性、约束)、表其他属性、表数据)
DDL 用来定义:数据库的元数据

3.2 DDL语句——库定义
3.2.1 创建:
CREATE {DATABASE | SCHEMA} [IF NOT EXISTS] db_name
    [create_specification] ...

CREATE DATABASE jiaguren CHARSET utf8;

开发规范:
1、库名字,使用小写字母。
2、创建库时,一并指定字符集。

查询创建的数据库:
show databases;
show create database test;

3.2.2 删除:
drop database test;

3.2.3 修改:
alter database test1 charset utf8;


3.3 DDL语句——表定义

3.3.1 创建
create table 
help create table

USE jiaguren;
CREATE TABLE student(
id INT NOT NULL AUTO_INCREMENT PRIMARY KEY COMMENT '学员序号',
NAME VARCHAR(20) NOT NULL  COMMENT '学员姓名',
age TINYINT UNSIGNED   NOT NULL COMMENT '学员年龄',
gender ENUM('m','f') NOT NULL DEFAULT 'm' COMMENT '学员性别',
ruxuedate DATETIME NOT NULL DEFAULT NOW() COMMENT '入学时间'
)ENGINE=INNODB CHARSET utf8;

查看创建的表:
SHOW TABLES;
show create table student;
desc student;

扩展:
create table stu like student;
create table stu1 select * from student;


3.3.2 删除定义
drop table stu1;


3.3.3 修改
(1)修改表名字
alter table student rename to stu;
(2)在表中添加一列telnum char(11);
alter table stu add telnum char(11);
(3)在name列后加入新列 qq varchar(20) not null unique
alter table stu add qq varchar(20) not null unique after name;
(4)在表的第一列加入新列classid int not null
alter table stu add classid int not null  first;
(5)删除表中的classid列
alter table stu drop classid;
(6)修改表中telnum 列的数据类型为bigint
alter table stu change   telnum telnum bigint;

(7)删除表的所有数据行
truncate  table stu;


3.4 DML语句
操作表中的数据行

3.4.1 增(insert)
insert into stu values(1,'zs','12345',20,'m',now(),110);
insert into stu(name,qq,age,telnum) values('ls','23456',21,119);
insert into stu(name,qq,age,telnum) values('lss','223456',29,118),('lsss','2234516',129,1222);

select * from stu;

3.4.2 删
delete from stu;
delete from stu where name = 'lsss';
delete from stu where name like 'ls%';

3.4.3 改
update stu set age=40 where name='zs';

扩展:屏蔽delete,伪删除,使用update替代delete
alter table stu add state enum('1','0') not null default '1';
update  stu set state='0' where name='lsss'; 
替代:
delete from stu where name='lsss';
在将来业务中:
select * from stu where state='1';


3.5 DQL:
3.5.1 数据行的查询(select)
(1) from 
(3) join 
(2) on 
(4) where 
(5) group by(开始使用select中的别名,后面的语句中都可以使用)
(6) having 
(7) order by
(8) limit


-- 1、全表查询
SELECT * FROM city;

-- 2、部分数据查询
SELECT NAME ,population  FROM city;

-- 3、where子句的时候--->过滤查询
--- 3.1 等值查询
SELECT * FROM city WHERE countrycode='CHN';

--- 3.2 不等值查询(> < >= <= ,<>) 
SELECT * FROM city WHERE countrycode='CHN' AND population>5000000;
--- 3.3 连接符(AND,OR)
--- AND,需要保证前后条件都满足
--- OR, 只需要满足其中一个条件即可
   
SELECT * FROM city WHERE countrycode='CHN' OR countrycode='USA';
SELECT * FROM city WHERE countrycode IN ('CHN','USA');

---> 一般会改写为 UNION
SELECT * FROM city WHERE countrycode='CHN'
UNION
SELECT * FROM city WHERE countrycode='USA';

--- 3.4 BETWEEN AND 

SELECT * FROM city WHERE population BETWEEN  1000000 AND 2000000 ;


-- 4、order by + limit

SELECT * FROM city WHERE countrycode='USA' ORDER BY population DESC;
SELECT * FROM city WHERE countrycode='USA' ORDER BY population DESC LIMIT 10;

SELECT * FROM city WHERE countrycode='USA' ORDER BY population DESC LIMIT 10,10;
SELECT * FROM city WHERE countrycode='USA' ORDER BY population DESC LIMIT 10 OFFSET 10;

元数据查询
mysqlshow
show
information_schema

© 著作权归作者所有

共有 人打赏支持
hnairdb
粉丝 20
博文 119
码字总数 118982
作品 0
深圳
数据库管理员
私信 提问
使用 ProxySQL 改进 MySQL SSL 的连接性能

原文出处:Percona 译文出处:开源中国 在这篇博文里,我们准备来看一下 ProxySQL 是如何提高 MySQL 的 SSL 连接性能的。 当用 SSL 部署 MySQL 时,主要的问题是如果没有使用连接池(例如:P...

Percona
2017/10/03
0
0
提升网站访问速度的 SQL 查询优化技巧

原文出处:Delicious Brains 译文出处:开源中国 你一定知道,一个快速访问的网站能让用户喜欢,可以帮助网站从Google 上提高排名,可以帮助网站增加转化率。如果你看过网站性能优化方面的文...

Delicious Brains
2017/12/09
0
0
详解 Linux 下的用户管理、用户组管理和权限管理

最近和几个朋友开发项目,期间使用了一台服务器跑模型,这台服务器是多人公用的,很多人都在上面有自己的账号,互不干涉内政,一切看起来十分井然有序。近期,这个服务器上刚挂载了一块新硬盘...

崔庆才
2018/09/04
0
0
每天一个 Linux 命令(60): scp命令

原文出处:peida scp是secure copy的简写,用于在Linux下进行远程拷贝文件的命令,和它类似的命令有cp,不过cp只是在本机进行拷贝不能跨服务器,而且scp传输是加密的。可能会稍微影响一下速度...

peida
2017/02/09
0
0
NoSQL数据库概览及其与SQL语法的比较

本文作者:伯乐在线 -周兆熊 。未经作者许可,禁止转载! 欢迎加入伯乐在线专栏作者。 HBase是一个高可靠性、高性能、面向列、可伸缩的分布式存储系统,同时也是知名的NoSQL数据库之一。NoS...

伯乐在线
2015/11/13
0
0

没有更多内容

加载失败,请刷新页面

加载更多

从 JVM 分析 hibernate-validator NoClassDefFoundError

最近排查一个spring boot应用抛出hibernate.validator NoClassDefFoundError的问题,异常信息如下: Caused by: java.lang.NoClassDefFoundError: Could not initialize class org.hibernat......

微笑向暖wx
18分钟前
1
0
c++指针和字符串

==============================

天王盖地虎626
23分钟前
2
0
从 JVM 分析 hibernate-validator NoClassDefFoundError

最近排查一个spring boot应用抛出hibernate.validator NoClassDefFoundError的问题,异常信息如下: Caused by: java.lang.NoClassDefFoundError: Could not initialize class org.hibernat......

java菜分享
28分钟前
2
0
超500款社交APP对标微信,细分未来社交领域

“微信之父”张小龙在2019微信公开课PRO活动上透露,截止2018年8月,微信的日登录量已超过10亿。腾讯2018年三季度财报显示,QQ智能终端月活跃账户达6.98亿人。 当前微信和QQ无疑是中国最大且...

ThinkSNS账号
35分钟前
1
0
Fiddler 抓包工具总结

序章 Fiddler是一个蛮好用的抓包工具,可以将网络传输发送与接受的数据包进行截获、重发、编辑、转存等操作。也可以用来检测网络安全。反正好处多多,举之不尽呀!当年学习的时候也蛮费劲,一...

javaer
37分钟前
1
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部