數據庫
create database 數據庫名稱;---創建數據庫
create database 數據庫名稱 default charset=utf8mb4;---創建數據庫,同時指定編碼
show databases;---查看當前數據庫管理下存在多少數據庫
show databases like "db_%";---查詢以db_開頭的數據庫
select database();---查詢當前數據庫是哪個數據庫
select version( );---查看數據庫版本
select user( );---查看當前用戶
select user,host,password from mysql.user;---查看所有用戶
show create database 數據庫名稱;---查看創建的數據庫
drop database [if exists] 數據庫名稱;---刪除數據庫(drop)
數據庫表
create table [if not exists] 數據庫表名稱 (# 定義表結構字段1 類型 [約束條件],字段2 類型 [約束條件],……字段n 類型 [約束條件]
);create table t_user (id int,name varchar(50),age int,gender char(5),address varchar(255),tel char(11)
);insert into t_user values(id, "name", age, 'gender', "address", "tel");---插入數據
select * from 數據庫表名稱;---查詢表中數據
show tables;---查看當前數據庫下存在多少數據庫表
describe t_name;
show create table 數據庫表名稱;
注意:查詢sql時,如果結果較多,查看不方便,則可以反正查詢的結果,在sql后面加上`\G`
drop table [if exists] 數據庫表名稱;
數據庫約束
- 默認值約束(default)—給給定的字段,設置默認值
- 主鍵約束(primary key (auto_increment—自增))—從功能上看相當于非空且唯一,一個表中只允許一個主鍵,主鍵是表中唯一確定一行數據的字段,一般建議主鍵采用“int類型”,由數據庫自身維護這個字段的值。
- 非空約束(not null)—不允許字段的值為空。
- 外鍵約束
- 唯一約束(unique)—保證該字段的值是唯一的,值不允許重復
- 檢查約束(check,enum) 【MySQL8之前,不生效。MySQL8之后是支持檢查約束】
修改表的結構
修改列類型alter table 表名 modify 列名 列類型; -- 注意存在值的情況,類型不一定能成功
增加列alter table 表名 add 列名 列類型;
刪除列alter table 表名 drop 列名;
列改名alter table 表名 change 舊列名 新列名 列類型;
更改表名alter table 表名 rename 新表名;rename table 表名 to 新表名;
單表查詢
1、顯示所有職工的基本信息。
2、查詢所有職工所屬部門的部門號,不顯示重復的部門號。
3、求出所有職工的人數。
4、列出最高工和最低工資。
5、列出職工的平均工資和總工資。
6、創建一個只有職工號、姓名和參加工作的新表,名為工作日期表。
7、顯示所有女職工的年齡。
8、列出所有姓劉的職工的職工號、姓名和出生日期。
9、列出1960年以前出生的職工的姓名、參加工作日期。
10、列出工資在1000-2000之間的所有職工姓名。
11、列出所有陳姓和李姓的職工姓名。
12、列出所有部門號為2和3的職工號、姓名、黨員否。
13、將職工表worker中的職工按出生的先后順序排序。
14、顯示工資最高的前3名職工的職工號和姓名。
15、求出各部門黨員的人數。
16、統計各部門的工資和平均工資
17、列出總人數大于4的部門號和總人數。
多表查詢
1.創建student和score表
2.為student表和score表增加記錄
student表
score表
3.查詢student表的所有記錄
4.查詢student表的第2條到4條記錄
5.從student表查詢所有學生的學號(id)、姓名(name)和院系(department)的信息
6.從student表中查詢計算機系和英語系的學生的信息
7.從student表中查詢年齡18~22歲的學生信息
8.從student表中查詢每個院系有多少人
9.從score表中查詢每個科目的最高分
10.查詢李四的考試科目(c_name)和考試成績(grade)
11.用連接的方式查詢所有學生的信息和考試信息
12.計算每個學生的總成績
13.計算每個考試科目的平均成績
14.查詢計算機成績低于95的學生信息
15.查詢同時參加計算機和英語考試的學生的信息
16.將計算機考試成績按從高到低進行排序
17.從student表和score表中查詢出學生的學號,然后合并查詢結果
18.查詢姓張或者姓王的同學的姓名、院系和考試科目及成績
19.查詢都是湖南的學生的姓名、年齡、院系和考試科目及成績