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

#創(chuàng)建表的課堂練習 -- 字段屬性 -- Id 整形 -- name 字符型 -- sex 字符型 -- brithday 日期型(date) -- entry_date 日期型 (date) -- job 字符型 -- Salary 小數(shù)型 -- resume 文本型 -- 自己一定要練習一把 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)
這是對表的結(jié)構(gòu)進行修改,比如添加列,刪除列,修改表的名字,字符集,引擎等
- 添加列
alter table lrx_t1 add `name` varchar(32) not null default '';
- 刪除列
alter table lrx_t1 drop `name`;
- 修改表的名字
rname table lrx_t1 to liu;
- 修改列,比如修改名字的長度為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ù)庫CRUD語句
3.1Insert語句(添加數(shù)據(jù))
1.基本語句
insert into table_name values (vaulue...);
2.使用細節(jié)
- 插入的數(shù)據(jù)應(yīng)與字段的數(shù)據(jù)類型相同。
比如 把 ‘abc’ 添加到 int 類型會錯誤
INSERT INTOgoods(id, goods_name, price)
VALUES(‘雷軍’, ‘小米手機’, 2000);- 數(shù)據(jù)的長度應(yīng)在列的規(guī)定范圍內(nèi),例如:不能將一個長度為 80 的字符串加入到長度為 40 的列中。
INSERT INTOgoods(id, goods_name, price)
VALUES(40, ‘vovo 手機 vovo 手機 vovo 手機 vovo 手機 vovo 手機’, 3000);- 在 values 中列出的數(shù)據(jù)位置必須與被加入的列的排列位置相對應(yīng)。
INSERT INTOgoods(id, goods_name, price) – 不對
VALUES(‘vovo 手機’,40, 2000); –- 字符和日期型數(shù)據(jù)應(yīng)包含在單引號中。
INSERT INTOgoods(id, goods_name, price)
VALUES(40, vovo 手機, 3000); – 錯誤的 vovo 手機 應(yīng)該 ‘vovo 手機’- 列可以插入空值[前提是該字段允許為空],insert into table value(null)
INSERT INTOgoods(id, goods_name, price)
VALUES(40, ‘vovo 手機’, NULL);- insert into tab_name (列名…) values (),(),() 形式添加多條記錄
INSERT INTOgoods(id, goods_name, price)
VALUES(50, ‘三星手機’, 2300),(60, ‘海爾手機’, 1800);- 如果是給表中的所有字段添加數(shù)據(jù),可以不寫前面的字段名稱
INSERT INTOgoodsVALUES(70, ‘IBM 手機’, 5000);- 默認值的使用,當不給某個字段值時,如果有默認值就會添加默認值,否則報錯,如果某個列 沒有指定 not null ,那么當添加數(shù)據(jù)時,沒有給定值,則會默認給 null , 如果我們希望指定某個列的默認值,可以在創(chuàng)建表時指定
INSERT INTOgoods(id, goods_name)
VALUES(80, ‘格力手機’);
SELECT * FROM goods;
INSERT INTOgoods2(id, goods_name)
VALUES(10, ‘小米手機’);
SELECT * FROM goods2;
3.2Update語句(更新數(shù)據(jù))
1.使用update語句來修改表中的數(shù)據(jù)

2.基本使用,我們先看一個題目

-- 演示 update 語句
-- 要求: 在上面創(chuàng)建的 employee 表中修改表中的紀錄
-- 1. 將所有員工薪水修改為 5000 元。[如果沒有帶 where 條件,會修改所有的記錄,因此要小心]
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 = '老妖怪' -- 可以修改多個列的值
UPDATE employee
SET salary = salary + 1000 , job = '出主意的'
WHERE user_name = '老妖怪'
3.updata使用的四個細節(jié)
- 1.UPDATE語法可以用新值更新原有表行中的各列。
- 2.SET子句指示要修改哪些列和要給予哪些值。
- 3.WHERE子句指定應(yīng)更新哪些行。如沒有WHERE子句,則更新所有的行(記錄),因此老師提醒一定小心。
- 4.如果需要修改多個字段,可以通過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 = '老妖怪'; -- 要刪除這個表 DROP TABLE employee;
3.delect使用細節(jié)
- 如果不使用where子句,將刪除表中所有數(shù)據(jù)。
- Delete語句不能刪除某一列的值(可使用update設(shè)為null或者")
- 使用delete語句僅刪除記錄,不刪除表本身。如要刪除表,使用drop table 表名;
3.4Select語句(查找數(shù)據(jù))
查詢語句我們這里簡單講述一下單表查詢
3.4.1單表查詢
1.基本語法

- 1.Select指定查詢哪些列的數(shù)據(jù)。
- 2.column指定列名。
- 3.*號代表查詢所有列。
- 4 From指定查詢哪張表。
- 5.DISTINCT可選,指顯示結(jié)果時,是否去掉重復數(shù)據(jù)
2,下面我們演示一下案例,在演示之前,我們先創(chuàng)建一個表
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,'歐陽鋒',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)建之后,我們看一下題目要求

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

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

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

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

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

-- 演示 order by 使用 -- 對數(shù)學成績排序后輸出【升序】。 SELECT * FROM student ORDER BY math; -- 對總分按從高到低的順序輸出 [降序] -- 使用別名排序 SELECT `name` , (chinese + english + math) AS total_score FROM student ORDER BY total_score DESC; -- 對姓韓的學生成績[總分]排序輸出(升序) 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ù)庫crud語句的文章就介紹到這了,更多相關(guān)Mysql創(chuàng)建表及crud語句內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
Java數(shù)據(jù)類型與MySql數(shù)據(jù)類型對照表
這篇文章主要介紹了Java數(shù)據(jù)類型與MySql數(shù)據(jù)類型對照表,以表格形式分析了java與mysql對應(yīng)數(shù)據(jù)類型,并簡單講述了數(shù)據(jù)類型的選擇與使用方法,需要的朋友可以參考下2016-06-06

