幾個(gè)英文解釋?zhuān)?/b>
Sql structed query language
DDL data definition language? ? create drop alter truncate
DML data manipulation language insert update delete
DCL data control language? ? ? grant(授權(quán)) revoke(取消授權(quán))
DQL data query language select
mysql的數(shù)據(jù)類(lèi)型:
int
float,doulbe
char(固定長(zhǎng)度吱瘩,不夠就補(bǔ)上空格),varchar (可變長(zhǎng)度监徘,合法范圍內(nèi)數(shù)據(jù)多長(zhǎng),長(zhǎng)度多長(zhǎng))
date,time,datetime,timestamp(時(shí)間戳桨啃,會(huì)自動(dòng)設(shè)置當(dāng)前時(shí)間為其值)
text,blob(二進(jìn)制類(lèi)型文件)
單表約束:
primary key
unique
not null
--查看所有數(shù)據(jù)庫(kù)
show databases;
--查看當(dāng)前正在使用的是哪個(gè)數(shù)據(jù)庫(kù)
select database();?
--創(chuàng)建一個(gè)名字為dyq的數(shù)據(jù)庫(kù)
create database dyq;
--刪除名為dyq的數(shù)據(jù)庫(kù)
drop database dyq;
--顯示dyq這個(gè)數(shù)據(jù)庫(kù)創(chuàng)建的語(yǔ)句,以及編碼是什么
show create database dyq;
--修改數(shù)據(jù)庫(kù):一般很少修改數(shù)據(jù)庫(kù) , 如果修改,只會(huì)修改數(shù)據(jù)庫(kù)的編碼母剥,這一般也很少修改晌坤。
alter database dyq character set gbk;
alter database dyq character set utf8;
--創(chuàng)建表格前要指定是哪個(gè)數(shù)據(jù)庫(kù)精置,也就是使用哪個(gè)數(shù)據(jù)庫(kù)
use dyq;
--創(chuàng)建一個(gè)student表格餐屎,有id艳吠,name工育,age虾宇,sex
create table dyq(
? ? id int(10) primary key auto_increment,--主鍵自動(dòng)增長(zhǎng)
? ? name varchar(20) unique not null,--姓名唯一不為空
? ? age int not null,
? ? sex varchar(2) not null);
CREATE TABLE perple2(
id INT PRIMARY KEY,
username VARCHAR(32) UNIQUE,
age INT(11),
sex VARCHAR(32) NOT NULL,
thistime TIMESTAMP);--帶時(shí)間戳
--創(chuàng)建表格時(shí)不知道要不要添加約束,也可以在創(chuàng)建表格時(shí)不添加約束如绸,以后再添加約束,用關(guān)鍵字alter
--添加主鍵約束
?alter dyq modify id int primary key;
--添加自動(dòng)增長(zhǎng)約束
alter dyq modify id int auto_increment;
--添加唯一性約束
alter dyq modify name varchar(20) unique;
--添加非空約束
?alter dyq modify sex varchar(8) not null;
--修改表格的字符集
alter table 表名 character set 字符集
--往表格中添加數(shù)據(jù)文留,添加一條完整的數(shù)據(jù)
insert into dyq values(null,'dyq',19,'1');
--往表格中只添加部分?jǐn)?shù)據(jù),不想添加一條完整的數(shù)據(jù)竭沫,前提是未添加的數(shù)據(jù)可以為空
insert into dyq (id,name,age,sex) values (null,'dyq',19,'1');
--修改整個(gè)dyq表格的所有年齡都為18
update dyq set age=18;
--修改dyq表格中某個(gè)數(shù)據(jù)的值示例
update dyq set age=100 where id = 10;
--刪除dyq表格中id為2的記錄
delete from dyq where id=2;
--刪除表格燥翅,徹底刪除什么都不留
drop table dyq;
--刪除表格,逐行刪除蜕提,最后留一個(gè)空表格
delete from dyq;
--先徹底刪除表格森书,然后復(fù)制一個(gè)空表格,結(jié)構(gòu)和原來(lái)的表格一模一樣
truncate table dyq;
--修改表格的名稱(chēng)
rename table dyq to duyuquan;
--使表格增加一列
alter table dyq add salary float(32) not null;
--刪除表格中的一列
alter table dyq drop salary;
--修改表格中某一列的列名
alter table dyq change name username varchar(32) unique;
--展現(xiàn)數(shù)據(jù)庫(kù)中所有的表
show tables;
--展現(xiàn)某個(gè)表格創(chuàng)建的語(yǔ)句
show create table dyq;
--查看某張表的結(jié)構(gòu)
desc dyq;
--常用查詢(xún)語(yǔ)句結(jié)構(gòu)一般如下
select
distinct deptno,count(*),avg(salary)
from dyq
group by deptno having deptno>1 order by deptno limit 1,3;--1代表從第幾條記錄開(kāi)始谎势,3代表展示多少條
--利用別名查詢(xún)凛膏,使用的關(guān)鍵字是as.as可以省略的.
--表別名:
select * from product as p;
--列別名:
select pname as pn from product;
--where后的條件寫(xiě)法:
>,<,=,>=,<=,<>
--邏輯運(yùn)算符: and or not
--null值判斷 : is null,? is not null
--模糊查詢(xún):like
占位符_代表一個(gè)字符,而%代表任意個(gè)字符.
select * from product where pname like '%新%';
select * from product where pname like '_新_';
--in 在某個(gè)范圍中獲得值
select * from product where pid in (2,5,8);
--between 12 and 56
select * from product where pid between 12 and 56;
--分組查詢(xún)
1.根據(jù)cno字段分組脏榆,分組后統(tǒng)計(jì)商品的個(gè)數(shù).
select cno,count(*) from product group by cno;
2.根據(jù)cno分組猖毫,分組統(tǒng)計(jì)每組商品的平均價(jià)格,并且平均價(jià)格> 60;
select cno,avg(price) from product group by cno having avg(price)>60;
having 關(guān)鍵字可以讓我們篩選成組后的各種數(shù)據(jù)须喂,可以理解為對(duì)分組后的數(shù)據(jù)進(jìn)行再次過(guò)濾
select cno,avg(price) from product group by cno having sum(price)>1500;