day02 表 字符串 數值 日期

1 表操作(增刪查改)

1, 創(chuàng)建表 :CREATE TABLE person(NAME VARCHAR(20),sex CHAR(2),age INT);
2, 查看庫下面的所有表: show  tables;
3, 刪除表: drop table 表名;
4, 修改表名: alter table 表名 rename [to] 新表名;
5, 清空表數據: truncate 表名;
6抬探,查看表結構:desc 表名牡拇;

//清除創(chuàng)建新表
TRUNCATE TABLE account;

truncate  與  delete
truncate相當于刪表再重建一張同樣結構的表,操作后得到一張全新表.
而delete是從刪除所有的層面來操作的.
Trucate相當于把舊的表扔了重畫一張,
Delete相當于用橡皮把學籍表的數據庫擦掉.
如果決定全清空的下,truncate速度更快一些.

注意:
1.創(chuàng)建庫、表名是不要使用mysql關鍵字或者保留字丹弱; 
2.使用mysql時出現中文亂碼,創(chuàng)表時加入character set utf8; 
3.一般不推薦使用中文數據庫; 

將數據裝入表中

1, insert 插入表內容
1.1 不指定字段鳍徽,必須指定全部字段的值
INSERT INTO employees VALUES 
(12, 'Mary', 18, '男', '2017-10-11', '2017-11-11', 'job', 5500, '備注');

1.2 插入指定字段的數據
INSERT INTO employees (id, NAME, age, sex)
VALUES(14, '李五', NULL , '女');

1.3一次插入多條數據
INSERT INTO employees (id, NAME, age, sex)
VALUES(15, '李五', 19 , '女'),(16, '李六', 20 , '男');

2, 加載文本文件內容到表中

文本文件內容要按照表定義的類型填寫敢课,每行包含一個記錄阶祭,
用定位符(tab)把值分開,可以使用NULL值直秆。為了在文本文件中表示這些內容濒募,使用\N(反斜線,字母N)圾结。

mysql> LOAD DATA LOCAL INFILE '/path/pet.txt' INTO TABLE pet;
請注意如果用Windows中的編輯器(使用\r\n做為行的結束符)創(chuàng)建文件瑰剃,應使用:

mysql> LOAD DATA LOCAL INFILE '/path/pet.txt' INTO TABLE pet
    -> LINES TERMINATED BY '\r\n';

修改表頭 alter用法

1:刪除列
ALTER TABLE 【表名】 DROP 【列名】

2:增加列
ALTER TABLE 【表名】 ADD 【列名】 INT NOT NULL  COMMENT '注釋說明'

★★★ 插入列  在已有列后面插入新列
ALTER TABLE 【表名】 ADD 【插入新列】 INT AFTER 【已有列名】;

3:修改列的類型信息
ALTER TABLE 【表名】 CHANGE 【列名】【新列名(這里可以用和原來列同名即可)】 BIGINT NOT NULL  COMMENT '注釋說明'

4:重命名列
ALTER TABLE 【表名】 CHANGE 【列名】【新列名】 BIGINT NOT NULL  COMMENT '注釋說明'

5:重命名表
ALTER TABLE 【表名】 RENAME 【表新名】

6:刪除表中主鍵
Alter TABLE 【表名】 drop primary key

7:添加主鍵
ALTER TABLE 【表名】 ADD CONSTRAINT PK_SJ_RESOURCE_CHARGES PRIMARY KEY (resid,resfromid)

8: 添加索引
ALTER TABLE 【表名】 add index INDEX_NAME (name);

9: 添加唯一限制條件索引
ALTER TABLE 【表名】 add unique emp_name2(cardnumber);

10: 刪除索引
alter table 【表名】 drop index emp_name;

查看 show

1: 查看創(chuàng)建表的語句
show create table temp
2: 查看表
show tables;

查詢 select

1: 查詢所有字段內容
SELECT * FROM temp;

2: 查詢指定字段內容
SELECT id, NAME FROM temp;

3: 去除重復
SELECT DISTINCT job FROM temp;

只改變查詢內容,不改變原來表中的數據
4: 查詢運算 
SELECT salary*10 FROM temp;

5: 取別名
SELECT NAME AS '名字' FROM temp;
SELECT salary + 1000 , salary AS '工資' FROM temp;

條件查詢 where

1: 使用where 進行 條件查詢
SELECT NAME FROM temp WHERE NAME = '李四';
SELECT NAME,salary FROM  temp WHERE salary > 500;

2: 不等于
SELECT id,NAME,salary FROM  temp WHERE id != 500;
SELECT id,NAME,salary FROM  temp WHERE id <> 500;

3: 區(qū)間查詢
SELECT id, NAME FROM book WHERE id BETWEEN 3 AND 7; //查詢id在 3 至 7之間的內容

4: 顯示多個信息
SELECT id, NAME FROM temp WHERE id IN(2,4);

5: 模糊查詢
SELECT id, NAME FROM temp WHERE NAME LIKE '%李%'; //一個或多個字符
SELECT id, NAME FROM temp WHERE NAME LIKE '_李_'; //一個字符

6: 判斷是否為空 null比較特殊,不能使用 =  筝野!= 來判斷
SELECT id, NAME FROM temp WHERE NAME IS NOT NULL;

7: 多個條件同時成立 與
SELECT id, NAME, salary FROM temp WHERE NAME IS NOT NULL AND salary = 200;

8: 多個條件任一成立 或
SELECT id, NAME, salary FROM temp WHERE NAME IS NOT NULL OR salary = 200;

9: 多個條件不成立 非
SELECT id, NAME, salary FROM temp WHERE NOT(salary = 200);

排序 ORDER BY

1: 使用 ORDER BY 對查詢結果進行排序晌姚,asc升序粤剧,desc降序,默認asc升序
SELECT id,NAME,sex,salary FROM temp ORDER BY salary DESC;

2: 排序的列名挥唠,可以是select語句指定的別名 (字符串去掉引號)
SELECT id,NAME AS 姓名,sex,salary FROM temp ORDER BY 姓名 DESC;

3: 還可以用where條件選擇排序內容 ORDER BY 要放后面
SELECT id,NAME AS 姓名,sex,salary FROM temp WHERE id >= 3 ORDER BY 姓名 DESC;

更新表中的內容 updata 修改表數據

1: 使用updata語句修改表中的數據
UPDATE temp SET salary = 500; //無條件
UPDATE temp SET salary = 400 WHERE NAME = '李四'; //帶條件

刪除表內容 delete 修改表數據

1: 刪除指定記錄 如果沒有where條件就全刪了
DELETE FROM temp WHERE id = 5;

函數 COUNT抵恋,SUM,AVG, MAX, MIN, GROUP BY, HAVING

1: 統(tǒng)計所有員工id數 COUNT
SELECT COUNT(id) FROM temp;

2: 統(tǒng)計符合條件的員工id數
SELECT COUNT(id) FROM temp WHERE sex = '男';

3: 字段內容為null不納入統(tǒng)計
SELECT COUNT(id) FROM temp;
SELECT COUNT(NAME) FROM temp;

4: 求和 SUM
SELECT SUM(salary) AS '所有員工工資總和' FROM temp;
SELECT SUM() FROM temp; //0

5: 求平均值 AVG (null不參與計算)
SELECT AVG(salary) FROM temp;
SELECT AVG(salary) FROM temp WHERE sex = '男';

6: 求最大值 MAX
SELECT MAX(salary) FROM temp;
SELECT MAX(salary) FROM temp WHERE sex = '男';

7: 求最小值 MIN
SELECT MIN(salary) FROM temp;
SELECT MIN(salary) FROM temp WHERE sex = '女';

8: 分組 GROUP BY 求男女平均工資
SELECT sex AS '性別', AVG(salary) AS '平均工資' FROM temp GROUP BY sex;

9: 分組 GROUP BY 求男女員工個數
SELECT sex AS '性別', COUNT(sex) AS '員工個數' FROM temp GROUP BY sex;

10: 分組過濾 GROUP BY ... HAVING 平均售價低于60的圖書類別
SELECT class AS '圖書類別', AVG(price) AS '平均售價' FROM book GROUP BY class HAVING AVG(price) < 60;

字符串函數

1: 連接字符串
SELECT CONCAT(id,NAME,author) FROM book;

2: 連接字符串 加分隔符
SELECT CONCAT_WS(' # ',id,NAME,author) FROM book;

3: 統(tǒng)計字符串長度 (根據字節(jié)數)
SELECT NAME, LENGTH(NAME) FROM book;

4: 統(tǒng)計字符串長度 (根據字符數)
SELECT NAME, CHAR_LENGTH(NAME) FROM book;

5: 字母轉換小寫
SELECT NAME, LCASE(NAME) FROM book;

6: 字母轉換大寫
SELECT NAME, UPPER(NAME) FROM book;

7: 去空格以及自定義過濾
SELECT TRIM(' abc ');  //去首尾空格
SELECT TRIM(BOTH 'x' FROM 'xxxxabcxxxx');  //自定義過濾 去掉首尾
SELECT TRIM(LEADING 'x' FROM 'xxxxabcxxxx');  //自定義過濾 去掉前面
SELECT TRIM(TRAILING 'x' FROM 'xxxxabcxxxx');  //自定義過濾 去掉后面

8: 截取字符串
SELECT LEFT('abcdefg',5); //左截取 abcde
SELECT RIGHT('abcdefg',3); //右截取 efg
SELECT SUBSTRING('abcdefg',2,3); //中間截取 bcd

9: 替換字符串
SELECT INSERT('abcdefg',2,3,'123'); //替換 a123efg

數值方法

1:四舍五入
SELECT ROUND(3.14159, 4);  //3.1416
SELECT ROUND(3.54159, 0);  //4
SELECT ROUND(163.456, -2);  //200

2:截取
SELECT TRUNCATE(3.14159, 4);  //3.1415
SELECT TRUNCATE(123.456, -2);  //100

3:取余
SELECT MOD(11, 3);  //2

4:向下取整
SELECT FLOOR(44.2); //44

5:向上取整
SELECT CEIL(44.1); //45

日期

1: 日期格式轉換
SELECT DATE_FORMAT('1997-10-04 22:23:00','%H %K %I %r %T %S'); // 22 K 10 10:23:00 PM 22:23:00 00
SELECT STR_TO_DATE('04/31/2004', '%m /%d /%Y'); //2004-04-31

2: 當前時間
SELECT NOW(); //2017-11-28 17:08:15

3: 當前日期
SELECT CURDATE(); //2017-11-28

4: 當前時間
SELECT CURTIME(); //17:08:58

5: 當前月最后一天
SELECT LAST_DAY(NOW()); //2017-11-30

6:返回日期/時間單獨部分
SELECT EXTRACT(YEAR FROM NOW()); //2017
SELECT EXTRACT(MONTH FROM NOW()); //11
SELECT EXTRACT(DAY FROM NOW()); //28

7: 指定日期/時間 增減
SELECT DATE_ADD(NOW(),INTERVAL 1 YEAR); //增加1年 2018-11-28 17:13:58
SELECT DATE_SUB(NOW(),INTERVAL 1 YEAR); //減少1年 2016-11-28 17:14:52

8:兩個日期相隔天數
SELECT DATEDIFF(NOW(),'1988-08-28'); //10684

空值

1:空值函數
SELECT IFNULL(1/0, 'yes');//yes
2:相當于三目運算
SELECT IF(1>2 ,2 ,3);// 3

流程控制

1:相當于 java 里的 switch
SELECT
CASE 11
WHEN 1 THEN 'one'
WHEN 2 THEN 'two'
WHEN 11 THEN '666'
ELSE 'more'
END;

2:相當于 java 里的 IF ELSE
SELECT
CASE
WHEN 1 < 0
THEN '正數'
WHEN 0 = 0
THEN 'is 0'
ELSE '負數'
END;

系統(tǒng)信息函數

1:獲取 MySQL 版本號
SELECT VERSION();

2:服務器的連接次數
SELECT CONNECTION_ID();

3:當前數據庫名
SELECT DATABASE();

4:獲取用戶名的函數 幾種方法結果一樣
SELECT USER(); 
SELECT SYSTEM_USER(); 
SELECT SESSION_USER(); 
SELECT CURRENT_USER(); 

5:獲取字符集
SELECT CHARSET(NAME) FROM book; //utf8

加密函數

1: 對用戶的密碼進行加密宝磨,該函數是不可逆的弧关。
SELECT PASSWORD('abc'); //\*0D3CED9BEC10A777AEC23CCC353A8C08A633045E;

2: 對普通字符串進行加密,該函數是不可逆的
SELECT PASSWORD('abc'); //\*0D3CED9BEC10A777AEC23CCC353A8C08A633045E

3: 加密函數ENCODE(str, pswd_str) 
使用pswd_str作為密碼懊烤,加密str梯醒。使用DECODE()解密結果,結果是一個和str長度相同的字符串腌紧。
SELECT ENCODE('yuxiaohu', 'cry'),LENGTH(ENCODE('yuxiaohu','cry'));// ??Ι?Z>  8

4: 解密函數DECODE(crypt_str,pswd_str) 
使用pswd_str作為密碼茸习,解密加密字符串crypt_str,crypt_str是由ENCODE()返回的字符串壁肋。
SELECT DECODE(ENCODE('yuxiaohu','cry'), 'cry');//yuxiaohu
最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
  • 序言:七十年代末号胚,一起剝皮案震驚了整個濱河市,隨后出現的幾起案子浸遗,更是在濱河造成了極大的恐慌猫胁,老刑警劉巖,帶你破解...
    沈念sama閱讀 206,311評論 6 481
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件跛锌,死亡現場離奇詭異弃秆,居然都是意外死亡,警方通過查閱死者的電腦和手機髓帽,發(fā)現死者居然都...
    沈念sama閱讀 88,339評論 2 382
  • 文/潘曉璐 我一進店門菠赚,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人郑藏,你說我怎么就攤上這事衡查。” “怎么了必盖?”我有些...
    開封第一講書人閱讀 152,671評論 0 342
  • 文/不壞的土叔 我叫張陵拌牲,是天一觀的道長。 經常有香客問我歌粥,道長塌忽,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 55,252評論 1 279
  • 正文 為了忘掉前任失驶,我火速辦了婚禮土居,結果婚禮上,老公的妹妹穿的比我還像新娘。我一直安慰自己装盯,他們只是感情好,可當我...
    茶點故事閱讀 64,253評論 5 371
  • 文/花漫 我一把揭開白布甲馋。 她就那樣靜靜地躺著埂奈,像睡著了一般。 火紅的嫁衣襯著肌膚如雪定躏。 梳的紋絲不亂的頭發(fā)上账磺,一...
    開封第一講書人閱讀 49,031評論 1 285
  • 那天,我揣著相機與錄音痊远,去河邊找鬼垮抗。 笑死,一個胖子當著我的面吹牛碧聪,可吹牛的內容都是我干的冒版。 我是一名探鬼主播,決...
    沈念sama閱讀 38,340評論 3 399
  • 文/蒼蘭香墨 我猛地睜開眼逞姿,長吁一口氣:“原來是場噩夢啊……” “哼辞嗡!你這毒婦竟也來了?” 一聲冷哼從身側響起滞造,我...
    開封第一講書人閱讀 36,973評論 0 259
  • 序言:老撾萬榮一對情侶失蹤续室,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后谒养,有當地人在樹林里發(fā)現了一具尸體挺狰,經...
    沈念sama閱讀 43,466評論 1 300
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內容為張勛視角 年9月15日...
    茶點故事閱讀 35,937評論 2 323
  • 正文 我和宋清朗相戀三年买窟,在試婚紗的時候發(fā)現自己被綠了丰泊。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 38,039評論 1 333
  • 序言:一個原本活蹦亂跳的男人離奇死亡蔑祟,死狀恐怖趁耗,靈堂內的尸體忽然破棺而出,到底是詐尸還是另有隱情疆虚,我是刑警寧澤苛败,帶...
    沈念sama閱讀 33,701評論 4 323
  • 正文 年R本政府宣布,位于F島的核電站径簿,受9級特大地震影響罢屈,放射性物質發(fā)生泄漏。R本人自食惡果不足惜篇亭,卻給世界環(huán)境...
    茶點故事閱讀 39,254評論 3 307
  • 文/蒙蒙 一缠捌、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧,春花似錦曼月、人聲如沸谊却。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,259評論 0 19
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽炎辨。三九已至,卻和暖如春聪姿,著一層夾襖步出監(jiān)牢的瞬間碴萧,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 31,485評論 1 262
  • 我被黑心中介騙來泰國打工末购, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留破喻,地道東北人。 一個月前我還...
    沈念sama閱讀 45,497評論 2 354
  • 正文 我出身青樓盟榴,卻偏偏與公主長得像曹质,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子擎场,可洞房花燭夜當晚...
    茶點故事閱讀 42,786評論 2 345

推薦閱讀更多精彩內容