文档章节

     甲骨人-MySQL网络课-day03

hnairdb
 hnairdb
发布于 10/23 20:23
字数 852
阅读 5
收藏 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
博文 114
码字总数 114997
作品 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 命令(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
详解 Linux 下的用户管理、用户组管理和权限管理

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

崔庆才
09/04
0
0

没有更多内容

加载失败,请刷新页面

加载更多

当程序员有了中年危机 你会发现你就是个屁

前言 程序员是一个怎样的存在?引用一句鸡汤的名言来说:你以为你用双手改变了世界,实际上是苍老了自己。为什么我今天会抛出这个话题,其实我也是一个懵懂的少年,我也曾经为了成为一名程序...

架构师springboot
7分钟前
0
0
大型网站B2C商城项目实战+MongoDB+Redis+zookeeper+MySQL

本文列出了当今计算机软件开发和应用领域最关键部分,如果你想保证你现在以及未来的几年不失业,那么你最好跟上这些技术的发展。虽然你不必对这十种技术样样精通,但至少应该对它们非常熟悉。...

java知识分子
7分钟前
1
0
大型企业网络系统集成方案如何设计?

网络系统集成是企业实现无纸化办公和即时通讯办公的基础建设,在以生产效率为核心竞争力的市场中,企业想要快速获取信息并有效提高企业工作效率及业务能力,企业网络系统集成是必不可少的,由...

Java干货分享
8分钟前
0
0
Spring应用学习——IOC

1. Spring简介 1. Spring的出现是为了取代EJB(Enterprise JavaBean)的臃肿、低效、脱离现实的缺点。Spring致力于J2EE应用的各层(表现层、业务层、持久层)的解决方案,Spring是企业应用开...

江左煤郎
9分钟前
0
0
用Redis轻松实现秒杀系统

导论 曾经被问过好多次怎样实现秒杀系统的问题。昨天又在CSDN架构师微信群被问到了。因此这里把我设想的实现秒杀系统的价格设计分享出来。供大家参考。 秒杀系统的架构设计 秒杀系统,是典型...

James-
17分钟前
0
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部