MySQL基礎-001-SQL使用

使用SQL


⒈ SQL對數據庫進行操作
⑴ 創建數據庫
create database 數據庫名稱 [character set 字符集 collate 字符集校對規則];


⑵ 查看數據庫
查看數據庫服務器中所有的數據庫:show databases;


查看某個數據庫的定義信息: show create database 數據庫名稱;


⑶ 修改數據庫
alter database 數據庫名稱 character set 字符集 collate 校對規則;


⑷ 刪除數據庫
drop database 數據庫名稱;


⑸ 其他數據庫操作
切換數據庫:use 數據庫名稱;


查看當前正在使用的數據庫:

⒉ SQL對數據庫表進行操作
⑴ SQL創建表
① 語法:create table 表名稱(字段名稱 字段類型(長度) 約束,字段名稱 字段類型(長度) 約束…);
② 字段類型:一個實體對應一個表,一個實體屬性對應表的一個字段。

② char和varchar的區別
* char代表是固定長度的字符或字符串。定義類型char(8),向這個字段存入字符串hello,那麼數據庫使用三個空格將其補全。
* varchar代表的是可變長度的字符串。定義類型varchar(8), 向這個字段存入字符串hello,那麼存入到數據庫的就是hello。

④ datetime和timestamp區別
* datetime就是既有日期又有時間的日期類型,如果沒有向這個字段中存值,數據庫使用null存入到數據庫中
* timestamp也是既有日期又有時間的日期類型,如果沒有向這個字段中存值,數據庫使用當前的系統時間存入到數據庫中。

⑤ 約束

⑥ 建表語句示例:

create database web_test1;
use web_test1;
create table user(
	id int primary key auto_increment,
	username varchar(20) unique,
	password varchar(20) not null,
	age int,
	birthday date
);

⑵ SQL查看錶
① 查看某個數據庫下的所有的表
語法:show tables;


② 查看某個表的結構信息
語法:desc 表名;


⑶ SQL刪除表
drop table 表名;


⑷ SQL修改表
① 修改表:添加列
alter table 表名 add 列名 類型(長度) 約束;


② 修改表:修改列類型,長度和約束
alter table 表名 modify 列名 類型(長度) 約束;


③ 修改表:刪除列
alter table 表名 drop 列名;


④ 修改表:修改列名稱
alter table 表名 change 舊列名 新列名 類型(長度) 約束;

⑤ 修改表:修改表名
rename table 表名 to 新的表名;


⑥ 修改表:修改表的字符集
alter table 表名 character set 字符集;

⒊ SQL對數據庫表的記錄進行操作
⑴ SQL添加表的記錄
① 語法:

② 注意事項
值的類型與數據庫中表列的類型一致。
值的順序與數據庫中表列的順序一致。
值的最大長度不能超過列設置最大長度。
值的類型是字符串或者是日期類型,使用單引號引起來。
③ 添加記錄
添加某幾列:insert into user (id,username,password) values (null,'aaa','123');


添加所有列:insert into user values (null,'bbb','123',23,'1993-09-01');


④ 添加中文記錄


備註:直接向數據庫中插入中文記錄會出現錯誤!!!
解決方法:
    show variables like '%character%';  --查看數據庫中與字符集相關參數:
    需要將MySQL數據庫服務器中的客戶端部分的字符集改爲gbk。
    找到MySQL的安裝路徑:my.ini文件,修改文件中[client]下的字符集


重新啓動MySQL的服務器:services.msc
⑵ SQL修改表的記錄
① 語法: update 表名 set 列名=值,列名=值 [where 條件];
② 注意事項
值的類型與列的類型一致。
值的最大長度不能超過列設置的最大長度。
字符串類型和日期類型添加單引號。
③ 修改某一列的所有值


④ 按條件修改數據


⑤ 按條件修改多個列


⑶ SQL刪除表的記錄
① 語法:
    delete from 表名 [where 條件];
② 注意事項
刪除表的記錄,指的是刪除表中的一行記錄。
刪除如果沒有條件,默認是刪除表中的所有記錄。
③  刪除某一條記錄


④ 刪除表中的所有記錄


備註:刪除表中的記錄有兩種做法!!!
方法一:delete from user;
刪除所有記錄,屬於DML語句,一條記錄一條記錄刪除。事務可以作用在DML語句上的
方法二:truncate table user;
刪除所有記錄,屬於DDL語句,將表刪除,然後重新創建一個結構一樣的表。事務不能控制DDL的

⑷ SQL查看錶的記錄
① 基本查詢
語法:select [distinct] *|列名 from 表 [條件];
環境的準備:

create table exam(
	id int primary key auto_increment,
	name varchar(20),
	english int,
	chinese int,
	math	int
);

insert into exam values (null,'張三',85,74,91);
insert into exam values (null,'李四',95,90,83);
insert into exam values (null,'王五',85,84,59);
insert into exam values (null,'趙六',75,79,76);
insert into exam values (null,'田七',69,63,98);
insert into exam values (null,'李老八',89,90,83);

查詢所有學生考試成績信息


查詢所有學生的姓名和英語成績


查詢英語成績信息(不顯示重複的值)


查看學生姓名和學生的總成績


別名查詢


② 條件查詢


查詢李四學生的成績:


查詢名稱叫李四學生並且英文大於90分


查詢姓李的學生的信息

like可以進行模糊查詢,在like子句中可以使用_或者%作爲佔位符。_只能代表一個字符,而%可以代表任意個字符。
	* like ‘李_’		:名字中必須是兩個字,而且是姓李的。
	* like ‘李%’		:名字中姓李的學生,李子後可以是1個或任意個字符。
	* like ‘%四’		:名字中以四結尾的。
	* like ‘%王%’	:只要名稱中包含這個字就可以。


查詢英語成績是69,75,89學生的信息


③ 排序查詢(使用order by 字段名稱 asc/desc;)

查詢學生信息,並且按照語文成績進行排序:


查詢學生信息,並且按照語文成績倒序排序:


查詢學生信息,先按照語文成績進行倒序排序,如果成績相同再按照英語成績升序排序


查詢姓李的學生的信息,按照英語成績降序排序


④分組統計查詢(聚合函數使用)
sum();
獲取所有學生的英語成績的總和:


獲取所有學生的英語成績和數學成績總和:


查詢姓李的學生的英語成績的總和


查詢所有學生各科的總成績:


count();
獲得學生的總數


獲得姓李的學生的個數


max();
獲得數學成績的最高分:


min();
獲得語文成績的最小值


avg();
獲取語文成績的平均值


⑤分組查詢
語法:使用group by 字段名稱;
環境準備

create table orderitem(
	id int primary key auto_increment,
	product varchar(20),
	price double
);
insert into orderitem values (null,'電視機',2999);
insert into orderitem values (null,'電視機',2999);
insert into orderitem values (null,'洗衣機',1000);
insert into orderitem values (null,'洗衣機',1000);
insert into orderitem values (null,'洗衣機',1000);
insert into orderitem values (null,'冰箱',3999);
insert into orderitem values (null,'冰箱',3999);
insert into orderitem values (null,'空調',1999);

按商品名稱統計,每類商品所購買的個數:


按商品名稱統計,每類商品所花費的總金額:


按商品名稱統計,統計每類商品花費的總金額在5000元以上的商品


按商品名稱統計,統計每類商品花費的總金額在5000元以上的商品,並且按照總金額升序排序


總結:S(select)… F(from)…W(where)…G(group by)…H(having)…O(order by);


 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章