Mysql創(chuàng)建表以及數(shù)據(jù)庫(kù)crud語句舉例詳細(xì)講解
一. 創(chuàng)建數(shù)據(jù)表
1.下面我們直接演示數(shù)據(jù)表的創(chuàng)建語句:
- field:指定列名
- datatype:指定列名的數(shù)據(jù)類型
- character set:若不指定字符集,就與所在數(shù)據(jù)庫(kù)的字符集保持一致
- collate:校隊(duì)規(guī)則,若不指定,就與所在數(shù)據(jù)庫(kù)的字符集保持一致
-- 演示表的創(chuàng)建 CREATE TABLE lrx_t1( field1 datatype, field2 datatype, field3 datatype )CHARACTER SET 字符集 COLLATE 校隊(duì)規(guī)則 ENGINE 存儲(chǔ)引擎;
2.刪除數(shù)據(jù)表
drop table lrx_t1;
3.下面我們做一個(gè)練習(xí)

#創(chuàng)建表的課堂練習(xí) -- 字段屬性 -- Id 整形 -- name 字符型 -- sex 字符型 -- brithday 日期型(date) -- entry_date 日期型 (date) -- job 字符型 -- Salary 小數(shù)型 -- resume 文本型 -- 自己一定要練習(xí)一把 CREATE TABLE `emp` ( id INT, `name` VARCHAR(32), sex CHAR(1), brithday DATE, entry_date DATETIME, job VARCHAR(32), salary DOUBLE, `resume` TEXT) CHARSET utf8 COLLATE utf8_bin ENGINE INNODB; -- 添加一條 INSERT INTO `emp` VALUES(100, '小妖怪', '男', '2000-11-11', '2010-11-10 11:11:11', '巡山的', 3000, '大王叫我來巡山'); -- 查詢 SELECT * FROM `emp`;
二. 修改表結(jié)構(gòu)
這是對(duì)表的結(jié)構(gòu)進(jìn)行修改,比如添加列,刪除列,修改表的名字,字符集,引擎等
- 添加列
alter table lrx_t1 add `name` varchar(32) not null default '';
- 刪除列
alter table lrx_t1 drop `name`;
- 修改表的名字
rname table lrx_t1 to liu;
- 修改列,比如修改名字的長(zhǎng)度為60,注意,我們已經(jīng)改了表名
altre table liu modify `name` varchar(60)
- 列名·name`改為 my_name
alter table liu change `name` my_name varchar(32) not null default ' ';
- 修改表的字符集為utf8
alter table liu character set utf8;
- 顯示表的結(jié)構(gòu)
desc liu;
三. 數(shù)據(jù)庫(kù)CRUD語句
3.1Insert語句(添加數(shù)據(jù))
1.基本語句
insert into table_name values (vaulue...);
2.使用細(xì)節(jié)
- 插入的數(shù)據(jù)應(yīng)與字段的數(shù)據(jù)類型相同。
比如 把 ‘abc’ 添加到 int 類型會(huì)錯(cuò)誤
INSERT INTOgoods(id, goods_name, price)
VALUES(‘雷軍’, ‘小米手機(jī)’, 2000);- 數(shù)據(jù)的長(zhǎng)度應(yīng)在列的規(guī)定范圍內(nèi),例如:不能將一個(gè)長(zhǎng)度為 80 的字符串加入到長(zhǎng)度為 40 的列中。
INSERT INTOgoods(id, goods_name, price)
VALUES(40, ‘vovo 手機(jī) vovo 手機(jī) vovo 手機(jī) vovo 手機(jī) vovo 手機(jī)’, 3000);- 在 values 中列出的數(shù)據(jù)位置必須與被加入的列的排列位置相對(duì)應(yīng)。
INSERT INTOgoods(id, goods_name, price) – 不對(duì)
VALUES(‘vovo 手機(jī)’,40, 2000); –- 字符和日期型數(shù)據(jù)應(yīng)包含在單引號(hào)中。
INSERT INTOgoods(id, goods_name, price)
VALUES(40, vovo 手機(jī), 3000); – 錯(cuò)誤的 vovo 手機(jī) 應(yīng)該 ‘vovo 手機(jī)’- 列可以插入空值[前提是該字段允許為空],insert into table value(null)
INSERT INTOgoods(id, goods_name, price)
VALUES(40, ‘vovo 手機(jī)’, NULL);- insert into tab_name (列名…) values (),(),() 形式添加多條記錄
INSERT INTOgoods(id, goods_name, price)
VALUES(50, ‘三星手機(jī)’, 2300),(60, ‘海爾手機(jī)’, 1800);- 如果是給表中的所有字段添加數(shù)據(jù),可以不寫前面的字段名稱
INSERT INTOgoodsVALUES(70, ‘IBM 手機(jī)’, 5000);- 默認(rèn)值的使用,當(dāng)不給某個(gè)字段值時(shí),如果有默認(rèn)值就會(huì)添加默認(rèn)值,否則報(bào)錯(cuò),如果某個(gè)列 沒有指定 not null ,那么當(dāng)添加數(shù)據(jù)時(shí),沒有給定值,則會(huì)默認(rèn)給 null , 如果我們希望指定某個(gè)列的默認(rèn)值,可以在創(chuàng)建表時(shí)指定
INSERT INTOgoods(id, goods_name)
VALUES(80, ‘格力手機(jī)’);
SELECT * FROM goods;
INSERT INTOgoods2(id, goods_name)
VALUES(10, ‘小米手機(jī)’);
SELECT * FROM goods2;
3.2Update語句(更新數(shù)據(jù))
1.使用update語句來修改表中的數(shù)據(jù)

2.基本使用,我們先看一個(gè)題目

-- 演示 update 語句
-- 要求: 在上面創(chuàng)建的 employee 表中修改表中的紀(jì)錄
-- 1. 將所有員工薪水修改為 5000 元。[如果沒有帶 where 條件,會(huì)修改所有的記錄,因此要小心]
UPDATE employee SET salary = 5000
-- 2. 將姓名為 小妖怪 的員工薪水修改為 3000 元。
UPDATE employee
SET salary = 3000
WHERE user_name = '小妖怪'
-- 3. 將 老妖怪 的薪水在原有基礎(chǔ)上增加 1000 元
INSERT INTO employee
VALUES(200, '老妖怪', '1990-11-11', '2000-11-11 10:10:10', '捶背的', 5000, '給大王捶背', 'd:\\a.jpg');
UPDATE employee
SET salary = salary + 1000
WHERE user_name = '老妖怪' -- 可以修改多個(gè)列的值
UPDATE employee
SET salary = salary + 1000 , job = '出主意的'
WHERE user_name = '老妖怪'
3.updata使用的四個(gè)細(xì)節(jié)
- 1.UPDATE語法可以用新值更新原有表行中的各列。
- 2.SET子句指示要修改哪些列和要給予哪些值。
- 3.WHERE子句指定應(yīng)更新哪些行。如沒有WHERE子句,則更新所有的行(記錄),因此老師提醒一定小心。
- 4.如果需要修改多個(gè)字段,可以通過set字段1=值1,字段2=值2…
3.3Delect語句(刪除數(shù)據(jù))
1.使用delect語句刪除表中數(shù)據(jù)

2.快速入門案例解答
-- 刪除表中名稱為'老妖怪'的記錄。 DELETE FROM employee WHERE user_name = '老妖怪'; -- 刪除表中所有記錄, 老師提醒,一定要小心 DELETE FROM employee; -- Delete 語句不能刪除某一列的值(可使用 update 設(shè)為 null 或者 '') UPDATE employee SET job = '' WHERE user_name = '老妖怪'; -- 要?jiǎng)h除這個(gè)表 DROP TABLE employee;
3.delect使用細(xì)節(jié)
- 如果不使用where子句,將刪除表中所有數(shù)據(jù)。
- Delete語句不能刪除某一列的值(可使用update設(shè)為null或者")
- 使用delete語句僅刪除記錄,不刪除表本身。如要?jiǎng)h除表,使用drop table 表名;
3.4Select語句(查找數(shù)據(jù))
查詢語句我們這里簡(jiǎn)單講述一下單表查詢
3.4.1單表查詢
1.基本語法

- 1.Select指定查詢哪些列的數(shù)據(jù)。
- 2.column指定列名。
- 3.*號(hào)代表查詢所有列。
- 4 From指定查詢哪張表。
- 5.DISTINCT可選,指顯示結(jié)果時(shí),是否去掉重復(fù)數(shù)據(jù)
2,下面我們演示一下案例,在演示之前,我們先創(chuàng)建一個(gè)表
CREATE TABLE student( id INT NOT NULL DEFAULT 1, NAME VARCHAR(20) NOT NULL DEFAULT '', chinese FLOAT NOT NULL DEFAULT 0.0, english FLOAT NOT NULL DEFAULT 0.0, math FLOAT NOT NULL DEFAULT 0.0 ); INSERT INTO student(id,NAME,chinese,english,math) VALUES(1,'韓順平',89,78,90); INSERT INTO student(id,NAME,chinese,english,math) VALUES(2,'張飛',67,98,56); INSERT INTO student(id,NAME,chinese,english,math) VALUES(3,'宋江',87,78,77); INSERT INTO student(id,NAME,chinese,english,math) VALUES(4,'關(guān)羽',88,98,90); INSERT INTO student(id,NAME,chinese,english,math) VALUES(5,'趙云',82,84,67); INSERT INTO student(id,NAME,chinese,english,math) VALUES(6,'歐陽(yáng)鋒',55,85,45); INSERT INTO student(id,NAME,chinese,english,math) VALUES(7,'黃蓉',75,65,30); INSERT INTO student(id,NAME,chinese,english,math) VALUES(8,'韓信',45,65,99); SELECT * FROM student;
表創(chuàng)建之后,我們看一下題目要求

-- 查詢表中所有學(xué)生的信息。 SELECT * FROM student; -- 查詢表中所有學(xué)生的姓名和對(duì)應(yīng)的英語成績(jī)。 SELECT `name`,english FROM student; -- 過濾表中重復(fù)數(shù)據(jù) distinct 。 SELECT DISTINCT english FROM student; -- 要查詢的記錄,每個(gè)字段都相同,才會(huì)去重 SELECT DISTINCT `name`, english FROM student;
3.使用表達(dá)式對(duì)查詢的列進(jìn)行運(yùn)算

4.在 select 語句中可使用 as 語句

5.在 where 子句中經(jīng)常使用的運(yùn)算符

下面我們繼續(xù)根據(jù)上面創(chuàng)建的表來練習(xí)題目

-- select 語句 -- 查詢姓名為趙云的學(xué)生成績(jī) SELECT * FROM student WHERE `name` = '趙云' -- 查詢英語成績(jī)大于 90 分的同學(xué) SELECT * FROM student WHERE english > 90 -- 查詢總分大于 200 分的所有同學(xué) SELECT * FROM student WHERE (chinese + english + math) > 200
6.使用 order by 子句排序查詢結(jié)果

-- 演示 order by 使用 -- 對(duì)數(shù)學(xué)成績(jī)排序后輸出【升序】。 SELECT * FROM student ORDER BY math; -- 對(duì)總分按從高到低的順序輸出 [降序] -- 使用別名排序 SELECT `name` , (chinese + english + math) AS total_score FROM student ORDER BY total_score DESC; -- 對(duì)姓韓的學(xué)生成績(jī)[總分]排序輸出(升序) where + order by SELECT `name`, (chinese + english + math) AS total_score FROM student WHERE `name` LIKE '韓%' ORDER BY total_score;
總結(jié)
到此這篇關(guān)于Mysql創(chuàng)建表以及數(shù)據(jù)庫(kù)crud語句的文章就介紹到這了,更多相關(guān)Mysql創(chuàng)建表及crud語句內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
mysql死鎖(dead lock)與鎖等待(lock wait)的出現(xiàn)解決
死鎖和鎖等待是數(shù)據(jù)庫(kù)運(yùn)維中常見的問題,區(qū)別在于死鎖會(huì)自動(dòng)解除,而鎖等待需要手動(dòng)處理,本文就來介紹一下mysql死鎖(dead lock)與鎖等待(lock wait),感興趣的可以了解一下2024-09-09
mysql數(shù)據(jù)庫(kù)插入速度和讀取速度的調(diào)整記錄
由于項(xiàng)目變態(tài)需求;需要在一個(gè)比較短時(shí)間段急劇增加數(shù)據(jù)庫(kù)記錄(兩三天內(nèi),由于0增加至4億)。在整個(gè)過程調(diào)優(yōu)過程非常艱辛2012-07-07
MySQL 5.6 中的 TIMESTAMP 和 explicit_defaults_for_timestamp 參數(shù)
這篇文章主要介紹了MySQL 5.6 中的 TIMESTAMP 和 explicit_defaults_for_timestamp 參數(shù),需要的朋友可以參考下2015-08-08
MySQL中MVCC機(jī)制的實(shí)現(xiàn)原理
這篇文章主要介紹了MySQL中MVCC機(jī)制的實(shí)現(xiàn)原理,MVCC多版本并發(fā)控制,MySQL中一種并發(fā)控制的方法,他主要是為了提高數(shù)據(jù)庫(kù)的讀寫性能,用更好的方式去處理讀寫沖突2022-08-08
CentOS 7中升級(jí)MySQL 5.7.23的坑與解決方法
我們?cè)诎惭b升級(jí)的時(shí)候會(huì)遇到一些問題,不過可能每個(gè)人遇到的問題不一樣,多找找才能解決問題喲,下面這篇文章主要給大家介紹了關(guān)于在CentOS 7中升級(jí)MySQL 5.7.23遇到的一個(gè)坑與解決方法,需要的朋友可以參考下2018-10-10
mysql5.7 生成列 generated column用法實(shí)例分析
這篇文章主要介紹了mysql5.7 生成列 generated column用法,結(jié)合實(shí)例形式分析了mysql5.7 生成列 generated column基本原理、用法及操作注意事項(xiàng),需要的朋友可以參考下2020-02-02

