mysql默認帶的四個庫
| 庫名 | 作用 |
|---|---|
| information_schema | 相關配置資訊庫 |
| mysql | 存盤相關表:user 用戶表(管理員) |
| performance_schema | mysql性能相關的 |
| test | 測驗的庫 |
DDL(資料定義語言)
物件: 資料庫和表
對資料庫操作
創建資料庫
--創建資料庫
create database 資料庫名;
--示例
create database mydatabase;
--一半要在前面加上判斷,如果資料庫已經存在,洗掉資料庫
drop database if exists 資料庫名;
--優化,如果該資料庫不存在,創建
create database if not exists 資料庫名;
--示例
create database if not exists mydatabase;
修改資料庫的編碼格式
alter database 資料庫名 default character set 編碼格式;
--修改資料庫的這個編碼格式gbk
alter database mydatabase default character set gbk;
--查看資料庫編碼
show create database 資料庫名;
洗掉資料庫
drop database 資料庫名;
--如果存在,洗掉該庫
drop database if exists 資料庫名;
-- 修改庫的字符集:創建資料庫的時候直接修改了庫的編碼格式
create database if not exists 資料庫名 default character set 編碼格式 ;
--示例
create database if not exists mydb_04 default character set gbk ;
進入資料庫
--創建表前要先進入到指定的資料庫
use 資料庫名;
對表操作
查詢該資料庫中的表
show tables;
創建表
--除了最后一個欄位型別后面,每一個欄位型別后面加","隔開
create table 表名(
欄位名稱1 欄位型別1,
欄位名稱2 欄位型別2,
...
欄位名稱n 欄位型別n
);
--例如 ,如果student表存在,洗掉
drop table if exists student;
create table(
id int,
name varchar(10),
score double(3,1)--表示三位數,保留一位小數
);
查詢表結構
desc 表名;
修改表
--添加一列
alter table 表名 add 欄位名 欄位型別;
--示例
alter table student add sex varchar(2);
--修改某列的資料型別
alter table 表名 modify 欄位名 新欄位型別;
--示例
alter table student modify sex varchar(3);
--修改某列的名稱
alter table 表名 change 舊欄位名 新欄位名 欄位型別(與表中資料型別一致);
--示例
alter table student change sex gender varchar(3);
洗掉表
drop table 表名;
--如果該表存在,洗掉該表
drop table if exists 表名;
DML(資料操縱語言)
物件:紀錄(行)
插入記錄
--插入全部欄位,給表中的每一個欄位都賦值
insert into 表名 values(值1,值2...值n);
--插入部分欄位,沒有賦值的欄位都是null值
--欄位和值要一一對應
insert into 表名(欄位名1,欄位名2...) values (值1,值2...);
--一次插入多條記錄,中間用逗號隔開
insert into 表名 values (值1,值2...值n),
(值1,值2...值n),
...
(值1,值2...值n);
洗掉記錄
--洗掉全表資料
delete from 表名;
--洗掉表以及表中的全部資料,然后創建一張一模一樣的表
truncate table 表名;
--洗掉某一行記錄
delete from 表名 條件(where);
--例如 洗掉學生表中,成績為80的記錄
delete from student where score = 80;
洗掉全表資料是否對自增長的主鍵影響?
- DELETE FROM 表名 不會影響自增長的主鍵(洗掉全表的資料)(不會清除自增長主鍵!)
- TRUNCATE TABLE 表名 :直接洗掉了表(并且同時創建一張一模一樣的表):自增長主鍵會清除掉!
修改資料
-- 注意,修改必須帶上條件,如果不帶上條件,就成了批量修改
--帶條件修改單個欄位
update 表名 set 欄位名 = 值 where 條件;
--修改多條欄位 中間用逗號隔開
update 表名 set 欄位名1 = 值1,欄位名2 = 值2 where 條件;
DQL(資料查詢語言)
基本的查詢陳述句
查詢全表資料
select * from 表名;
select 欄位名1...欄位名n(所有的欄位名) from 表名;
--示例
--假設student表中 有欄位 id,name,sex,age
select * from student;
select id,name,sex,age from student;
查詢指定欄位
select 欄位名 from 表名;
--假設student表中 有欄位 id,name,sex,age
select name,sex from student;
給欄位起別名
select 欄位名 as(可省略) "別名" from student;
select name as "姓名" from student;
select id "學號".
name "姓名",
age "年齡",
sex "性別"
from student;
條件查詢
條件查詢就是在表名后面加上where條件陳述句
| 符號 | 意思 |
|---|---|
| > | 大于 |
| < | 小于 |
| >= | 大于等于 |
| <=> | 小于等于 |
| <> | 不等于 |
一個條件
select 欄位名... from 表名 where 條件;
--例如 查找年齡大于18歲的學生資訊
select * from student
where age>18;
多個多件
| 運算式 | 意思 |
|---|---|
| and | 并且 |
| && | 并且 |
| or | 或者 |
| || | 或者 |
| in | 后面跟(值1,值2…值n),表示在這幾個值中 |
| is | 后面跟null或者not null(mysql不支持" =null") |
| between 值1 and 值2 | 表示在值1和值2之間,等價于 >= 值1 and <= 值2 |
--查找學生表 年齡大于18 的女同學
select * from student
where age>18 and sex="女";
--查找學生表 年齡大于23 或者 年齡小于18的學生
select * from student
where age<18 or age>23
--查找年齡為18或者23,或者20的同學
select * from student
where age=(18,20,23);
--查找年齡在18-23之間的同學
select * from student
where age between 18 and 23;
--查找名字為null的同學
select * from student
where name is null;
聚合函式
常用的聚合函式
| 函式名 | 含義 |
|---|---|
| sum() | 求和 |
| avg() | 平均值 |
| max() | 最大值 |
| min() | 最小值 |
| count() | 查找記錄的數量 |
--查找總成績
select sum(score) from scores;
--求成績平均數
select avg(score) from scores;
--求最大成績
select max(score) from scores;
--求最小成績
select min(score) from scores;
--求班級人數
select count(*) from scores;
模糊查詢
| 關鍵字 | 含義 |
|---|---|
| like | 模糊查詢不能用等號,只能用like |
| % | 多個任意符號 |
| _ | 一個字符 |
--查找姓馬的人的資訊
select * from student
name like "馬%";
--查詢名字有化的人的資訊
select * from student
name like "%化%"
--查找名字里第三個字是騰的人的資訊
select * from student
name like "__騰";
--查找名字是兩個字的人的資訊
select * from student
name like "__";
轉載請註明出處,本文鏈接:https://www.uj5u.com/qianduan/210887.html
標籤:其他
上一篇:SQL實作簡易課程選修成績報表
