甲骨人-MySQL網絡課-day03


                      
=====================================================================================
=======================
第三章 mysql SQL語句
一、mysql接口自帶命令mysql

1.一、\h 或 help 或 ?
1.二、\G
1.三、\T 或 tee
1.四、\c 或 CTRL+c
1.五、\s 或 status
1.六、\. 或 source
1.七、\u 或usesql

二、SQL語句種類介紹
SQL92 SQL99:
DDL
DML
DCL
DQL數據庫

三、DDL:數據定義語言
3.1 介紹:
邏輯結構:
庫(庫名字、庫的屬性)、表(表名、表的列(列名字、列屬性、約束)、表其餘屬性、表數據)
DDL 用來定義:數據庫的元數據code

3.2 DDL語句——庫定義
3.2.1 建立:
CREATE {DATABASE | SCHEMA} [IF NOT EXISTS] db_name
    [create_specification] ...orm

CREATE DATABASE jiaguren CHARSET utf8;接口

開發規範:
一、庫名字,使用小寫字母。
二、建立庫時,一併指定字符集。ci

查詢建立的數據庫:
show databases;
show create database test;開發

3.2.2 刪除:
drop database test;it

3.2.3 修改:
alter database test1 charset utf8;io


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


-- 一、全表查詢
SELECT * FROM city;

-- 二、部分數據查詢
SELECT NAME ,population  FROM city;

-- 三、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 ;


-- 四、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

相關文章
相關標籤/搜索