国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 學院 > 開發設計 > 正文

MySQL入門復習

2019-11-08 20:42:05
字體:
來源:轉載
供稿:網友

SQL語句分類

SQL語句分類 一般,DQL(數據庫查詢語言)非標準的,因為數據庫主要用來查詢數據,所以把它單獨看做一個分類

啟動MySQL:

這里建議將路徑配到環境變量path那里去

mysql -uroot -p

MySQL數據庫啟動

查看數據庫已存有的碼表

show charset;--查看數據庫存有的碼表

庫操作

增:

create database 庫名稱 [character set 碼表名稱 collate 字符校對集名稱]

create database student;-- 創建數據庫create database student character set utf8;-- 創建數據庫student,制定碼表為utf8(舊版寫為utf-8,新版為utf8)

刪:

drop database student;-- 刪除數據庫student

改:

PS:只可以修改數據庫的碼表,不可以修改數據庫的名稱

alter database 數據庫名稱 character set 數據庫碼表 [collate 校對集名稱];

alter database student charset utf8 collate utf8_bin;-- 修改數據庫的碼表以及校對集

查:

查看數據庫創建語句:

show create database student; -- 查看數據庫student創建語句

查看創建的數據庫:

show databases;--查看已經創建的數據庫

查看已有的數據庫

可以看到除了自己創建的庫之外,還有一些其他庫。其他庫(除了test)不要亂動。因為是保存mysql的配置信息,賬戶信息等等。 test庫 : 自動創建用于測試的。

當前要使用的庫(重要)

use 庫名

use student;– 制定使用數據庫student

查看當前選擇的數據庫

select database();-- 查看當前操作的數據庫名稱

小總結:

創建庫 create database 庫名 [character set 碼表 collate 字符校對集] 顯示所有庫 show databases; 刪除庫 drop database 庫名; 修改數據庫碼表 alter database 庫名 character set 碼表 collate 字符校對集 使用數據庫 use 庫名 查看當前使用的庫 select database(); 顯示創建庫語句 show create database 庫名;

表操作

增:

CREATE TABLE table_name ( field1 datatype 約束/主鍵約束 auto_increment, field2 datatype 約束, field3 datatype 約束 )[character set 字符集 collate 校對規則]

create table student (name varchar(10),sex enum('男','女'),money int) charset utf8;-- 創建表student

添加一列

alter table 表名 add 列名 類型;

alter table student add phone varchar(10);-- 表新增一列

刪:

刪除數據表

drop table 表名;

drop table student;-- 刪除數據庫

刪除表中某列

alter table 表名 drop 列名;

alter table student drop money;--刪除列

改:

修改列的類型

alter table 表名 modify 列名 類型;

alter table student modify phone varchar(11);-- 修改列屬性

修改列的名稱

alter table 表名 change 舊列名 新列名 數據類型;

alter table student change sex gender enum('男','女');-- 修改列的名稱,類型一定需要寫出來

修改表的名稱

rename table 舊表名 to 新名;

rename table student to teacher;--修改表名為teacher

修改表的字符集.

(如果創建表時不指定,默認使用數據庫的字符集)

alter table 表名 character set 字符集 collate 校對集;

alter table student charset utf8 collate utf8_bin;--極少使用,創表時候一般會制定,制定后極少修改

查:

查看表創建的語句:

show create table student;--查看表創建的語句

查看當前庫中有哪些表

show tables;

查看表的結構

desc student;

查看表結構截圖

數據操作

insert into 表名[(列名1,列名2…)] values (值1,值2…);

不指定插入哪些列, 需要指定每一列的值

insert into student values ('xixi','男',1000000000,3.123);-- 新增一條數據

指定要插入那些列

insert into student(name,gender) values ('孫悅','女');-- 制定某列來插入數據

delete from student where name='孫悅';--刪除表中的一條數據

update student set phone='13612345678' where name='xixi';-- 修改表中的數據

模糊查詢

_匹配一個字符, %匹配0~n個字符

select * from student where name like '%a%';--查詢名字有a的同學信息

去除重復記錄

select distinct gender from student; --去除重復的記錄

null設置為0

null與任何數字計算結果都是null.上面的寫法是錯誤的. 使用IFNULL(參數1,參數2) 函數解決. 判斷參數1的值是否為null,如果為null返回參數2的值.

select sal*12 + IFNULL(comm,0) from emp;--如果comm為null,那么就將值設置為0

給列起別名

select sal*12 + IFNULL(comm,0) as '年收入' from emp;--給查詢的第二列起別名,as可以省略

排序

asc: 升序(默認) desc:降序

select * from stu order by age asc;--升序排序查詢

列的約束

1.非空約束(not null) 指定非空約束的列, 在插入記錄時 必須包含值. 2.唯一約束(unique) 該列的內容在表中. 值是唯一的. 3.主鍵約束(PRimary key) 當想要把某一列的值,作為該列的唯一標示符時,可以指定主鍵約束(包含 非空約束和唯一約束). 一個表中只能指定一個主鍵約束列.主鍵約 束 , 可以理解為 非空+唯一. 注意: 并且一張表中只能有一個主鍵約束.

MySQL數據類型

數字型

整型

TINYINT 1字節 byte SMALLINT 2字節 short MEDIUMINT 3字節 (常用)INT 4字節 int BIGINT 8字節 long

浮點型

FLOAT 單精度4字節 float **DOUBLE 8字節 double *DECIMAL 沒有精度損失 ============================================

DOUBLE 和 DECIMAL 區別? DOUBLE類型在運算時會有精度的缺失。 DECIMAL 就是解決精度缺失問題的。(底層使用字符串來保存數字)

單純想表示小數屬性時,使用double。 需要頻繁參與運算的小數,使用decimal。

字符串類型

注意: 字符串類型要使用單引號包裹.

短字符串類型

CHAR/VARCHAR (最大長度255字節) ====================================================

問題:char和varchar有什么區別? char定長字符串.varchar表示變長字符串. 同時指定長度為10。當存儲 abc char =》 ‘abc ’ varchar => ‘abc’ 結論: 開發中varchar用的最多。 char只在表示固定長度的枚舉中使用。例如 :性別(用01,02表示) ====================================================

長字符串類型(流類型)

*TEXT/CLOB 保存文本(字符流) –> 當要保存的內容超過255字節時使用. java中的writer 字符 BLOB 保存字節(字節流) –> 開發中用不到 java中的stream 字節 Character Large Object binary Large Object

區別: text:只能存儲字符數據. BLOB:可以存儲字符和多媒體信息(圖片 聲音 圖像)


日期和時間類型

date 只記錄日期 2015-01-14 time 只記錄時間 11:36:25 year 只記錄年 2015 datatime 記錄日期時間 2015-01-14 11:36:25 **timestamp 同上 2015-01-14 11:36:25

問題: datatime 和 timestamp 區別? 這兩種類型記錄的數據是一模一樣. 區別在于插入的時候,如果插入datatime類型時,沒有 傳值,那么該類型默認值就是null; 如果插入timestamp類型時,沒有 傳值,那么該類型默認值就是當前時間;


發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 天祝| 正镶白旗| 临湘市| 杨浦区| 阳春市| 承德市| 凤城市| 增城市| 娄底市| 衡东县| 台前县| 太和县| 玉山县| 葵青区| 合川市| 金门县| 靖江市| 离岛区| 桦南县| 永年县| 射洪县| 长白| 望江县| 上林县| 广饶县| 周口市| 安福县| 河源市| 永康市| 鹿邑县| 樟树市| 葵青区| 阳新县| 吴忠市| 民县| 陆良县| 西安市| 陆良县| 宜兰市| 罗江县| 台前县|