MySQL中表的操作
文章目錄
- 1 表的創(chuàng)建
- 2 表的查詢
- 3 表記錄的插入
- 3.1 插入完整數(shù)據(jù)記錄
- 3.2 插入部分?jǐn)?shù)據(jù)記錄
- 3.3 插入多條數(shù)據(jù)記錄
- 4 表記錄的更新
- 4.1 更新特定數(shù)據(jù)記錄
- 4.2 更新所有數(shù)據(jù)記錄
- 5 表記錄的刪除
- 5.1 刪除特定數(shù)據(jù)記錄
- 5.2 刪除所有數(shù)據(jù)記錄
在MySQL數(shù)據(jù)庫中,表是一種很重要的數(shù)據(jù)庫對象,是組成數(shù)據(jù)庫的基本元素,由若干個(gè)字段組成,主要用來實(shí)現(xiàn)存儲數(shù)據(jù)記錄。表的操作包含創(chuàng)建表、查詢表、修改表和刪除表,這些操作是數(shù)據(jù)庫對象的表管理中最基本也是最重要的操作。
1 表的創(chuàng)建
基本語法:
- CREATE TABLE <表名> ([表定義選項(xiàng)])[表選項(xiàng)][分區(qū)選項(xiàng)];
其中,[表定義選項(xiàng)]的格式為:
- <列名1> <類型1> [,…] <列名n> <類型n>
CREATE TABLE 命令語法比較多,其主要是由表創(chuàng)建定義(create-definition)、表選項(xiàng)(table-options)和分區(qū)選項(xiàng)(partition-options)所組成的。這里主要介紹表定義選項(xiàng)。
use school; #選擇數(shù)據(jù)庫school create table class1(class_id int, class_name varchar(128), class_teacher varchar(64)); #創(chuàng)建表classCREATE TABLE 語句的主要語法及使用說明如下:
- CREATE TABLE:用于創(chuàng)建給定名稱的表,必須擁有表CREATE的權(quán)限。
- <表名>:指定要創(chuàng)建表的名稱,表名稱可以被指定為 db_name.tbl_name,以便在特定的數(shù)據(jù)庫中創(chuàng)建表。無論是否有當(dāng)前數(shù)據(jù)庫,都可以通過這種方式創(chuàng)建。在當(dāng)前數(shù)據(jù)庫中創(chuàng)建表時(shí),可以省略 db-name。有些數(shù)據(jù)庫可以使用加引號的識別名,例如,‘mydb’.‘mytbl’ 是合法的,但 mysql 是不合法。
- <表定義選項(xiàng)>:表創(chuàng)建定義,由列名(col_name)、列的定義(column_definition, 或者叫類型定義)以及可能的空值說明、完整性約束或表索引組成。
注意:
- 默認(rèn)的情況是,表被創(chuàng)建到當(dāng)前的數(shù)據(jù)庫中。若表已存在、沒有當(dāng)前數(shù)據(jù)庫或者數(shù)據(jù)庫不存在,則會出現(xiàn)錯(cuò)誤。
- 提示:使用 CREATE TABLE 創(chuàng)建表時(shí),必須注意以下信息:
- 要創(chuàng)建的表的名稱不區(qū)分大小寫,不能使用SQL語言中的關(guān)鍵字,如DROP、ALTER、INSERT等。
- 數(shù)據(jù)表中每個(gè)列(字段)的名稱和數(shù)據(jù)類型,如果創(chuàng)建多個(gè)列,要用逗號隔開。
列名的命名規(guī)范:
表的創(chuàng)建實(shí)例:
創(chuàng)建一個(gè)用戶信息表,用來存儲用戶的如下信息:姓名,手機(jī)號碼,家庭地址,個(gè)人簡介,性別,年齡,身份證號。數(shù)據(jù)庫表名可定義為userinfo, 同時(shí)增加一個(gè)列id 用來作為每一條記錄的唯一標(biāo)識,并設(shè)為主鍵,自加!
2 表的查詢
查看所有的表:
- show tables;
查看表創(chuàng)建的詳細(xì)信息:
- show create table class;
查看表的詳細(xì)信息:
- desc class;
3 表記錄的插入
插入數(shù)據(jù)記錄是常見的數(shù)據(jù)操作,可以顯式向表中增加的新的數(shù)據(jù)記錄。在MySQL中可以通過“INSERT INTO”語句來實(shí)現(xiàn)插入數(shù)據(jù)記錄,該SQL語句可以通過如下4種方式使用:插入完整數(shù)據(jù)記錄、插入部分?jǐn)?shù)據(jù)記錄、插入多條數(shù)據(jù)記錄和插入JSON結(jié)構(gòu)的數(shù)據(jù)記錄。
3.1 插入完整數(shù)據(jù)記錄
在MySQL中插入完整的數(shù)據(jù)記錄可通過SQL語句INSERT來實(shí)現(xiàn),其語法形式如下:
INSERT INTO tablename(field1, field2, field3, ..., fieldn) VALUES(value1, value2, value3, ..., valuen);可以縮寫為:
INSERT INTO tablename VALUES(value1, value2, value3, ..., valuen);參數(shù):tablename表示所要插入完整記錄的表名,參數(shù)fieldn表示表中的字段名字,參數(shù)valuen表示所 要插入的數(shù)值,并且參數(shù)fieldn與參數(shù)valuen一一對應(yīng)。
mysql> create database school; #創(chuàng)建數(shù)據(jù)庫school mysql> use school; #選擇數(shù)據(jù)庫school mysql> create table class(id int, name varchar(128) UNIQUE, teacher varchar(64)); #創(chuàng)建表class, 并建立包含id,teacher字段的多列索引 mysql> show create table class; #查看表定義 mysql> insert into class(id, name, teacher) values(1, '一班', 'Martin'); # 插入完整記錄 mysql> insert into class values(2, '二班', 'Rock'); # 方式二,完整插入可縮寫3.2 插入部分?jǐn)?shù)據(jù)記錄
語法形式:
INSERT INTO tablename(field1, field2, field3, ..., fieldn) VALUES(value1, value2, value3, ..., valuen);注意: 如果域沒有設(shè)定默認(rèn)值,也沒有設(shè)定為自增長,則插入記錄時(shí)必須插入值。
mysql> create database school; #創(chuàng)建數(shù)據(jù)庫school mysql> use school; #選擇數(shù)據(jù)庫school mysql> create table class(id int UNIQUE AUTO_INCREMENT, name varchar(128) UNIQUE, teacher varchar(64)); #創(chuàng)建表class,指定id 字段自增長 mysql> show create table class; #查看表定義 mysql> insert into class(id, name, teacher) values(1, '一班', 'Martin'); # 插入完整記錄 mysql> insert into class (name, teacher)values('二班', 'Rock'); # 插入部分記錄3.3 插入多條數(shù)據(jù)記錄
語法形式:
INSERT INTO tablename(field1, field2, field3, ..., fieldn) VALUES(value11, value12, value13, ..., value1n), (value21, value22, value23, ..., value2n), ... .... (valuen1, valuen2, valuen3, ..., valuenn);舉例:
mysql> create database school; #創(chuàng)建數(shù)據(jù)庫school mysql> use school; #選擇數(shù)據(jù)庫school mysql> create table class(id int UNIQUE AUTO_INCREMENT, name varchar(128) UNIQUE, teacher varchar(64)); #創(chuàng)建表class,指定id 字段自增長 mysql> show create table class; #查看表定義 mysql> insert into class(id, name, teacher) values(1, '一班', 'Martin'),(2,'二班', 'Rock'),(3, '三班', 'Janny'); # 插入多條記錄4 表記錄的更新
更新數(shù)據(jù)記錄是數(shù)據(jù)操作中常見的操作,可以更新表中已經(jīng)存在數(shù)據(jù)記錄中的值。在MySQL中可以通過UPDATE語句來實(shí)現(xiàn)更新數(shù)據(jù)記錄,該SQL語句可以通過如下幾種方式使用:更新特定數(shù)據(jù)記錄、更新所有數(shù)據(jù)記錄、更新JSON結(jié)構(gòu)的數(shù)據(jù)記錄。
4.1 更新特定數(shù)據(jù)記錄
在MySQL中更新特定數(shù)據(jù)記錄可通過SQL語句UPDATE來實(shí)現(xiàn),其語法形式如下:
UPDATE tablename SET field1 = value1, field2 = value2, field3 = value3, ..., fieldn = valuen) WHERE CONDITION; # 或 UPDATE tablename SET field1 = value1, field2 = value2, field3 = value3, ..., fieldn = valuen) ;在上述語句中,參數(shù)tablename表示所要更新數(shù)據(jù)記錄的表名,參數(shù)field表示表中所要更新數(shù)值的字段名字,參數(shù)valuen表示更新后的數(shù)值,參數(shù)CONDITION表示滿足表tablename中的所有數(shù)據(jù)記錄,或不使用關(guān)鍵字WHERE語句。
舉例:
mysql> create database school; #創(chuàng)建數(shù)據(jù)庫school mysql> use school; #選擇數(shù)據(jù)庫school mysql> create table class(id int UNIQUE AUTO_INCREMENT, name varchar(128) UNIQUE, teacher varchar(64)); #創(chuàng)建表class,指定id 字段自增長 mysql> insert into class(id, name, teacher) values(1, '一班', 'Martin'),(2,'二班', 'Rock'),(3, '三班', 'Janny'); # 插入多條記錄 mysql> update class set teacher = '如花老師' ; #把所有記錄的teacher列改成如花老師 #或 mysql> update class set teacher = '如花老師' where 1=1;4.2 更新所有數(shù)據(jù)記錄
在MySQL中更新特定數(shù)據(jù)記錄可通過SQL語句UPDATE來實(shí)現(xiàn),其語法形式如下:
UPDATE tablename SET field1 = value1, field2 = value2, field3 = value3, ..., fieldn = valuen) WHERE CONDITION; # 或 UPDATE tablename SET field1 = value1, field2 = value2, field3 = value3, ..., fieldn = valuen) ;在上述語句中,參數(shù)tablename表示所要更新數(shù)據(jù)記錄的表名,參數(shù)field表示表中所要更新數(shù)值的字段名字,參數(shù)valuen表示更新后的數(shù)值,參數(shù)CONDITION表示滿足表tablename中的所有數(shù)據(jù)記錄,或不使用關(guān)鍵字WHERE語句。
mysql> create database school; #創(chuàng)建數(shù)據(jù)庫school mysql> use school; #選擇數(shù)據(jù)庫school mysql> create table class(id int UNIQUE AUTO_INCREMENT, name varchar(128) UNIQUE, teacher varchar(64)); #創(chuàng)建表class,指定id 字段自增長 mysql> insert into class(id, name, teacher) values(1, '一班', 'Martin'),(2,'二班', 'Rock'),(3, '三班', 'Janny'); # 插入多條記錄 mysql> update class set teacher = '如花老師' ; #把所有記錄的teacher列改成如花老師 或 mysql> update class set teacher = '如花老師' where 1=1;5 表記錄的刪除
刪除數(shù)據(jù)記錄是數(shù)據(jù)操作中常見的操作,可以刪除表中已經(jīng)存在的數(shù)據(jù)記錄。在MySQL中可以通過DELETE語句來刪除數(shù)據(jù)記錄,該SQL語句可以通過以下幾種方式使用:刪除特定數(shù)據(jù)記錄、刪除所有數(shù)據(jù)記錄。
5.1 刪除特定數(shù)據(jù)記錄
在MySQL中刪除特定數(shù)據(jù)記錄可通過SQL語句DELETE來實(shí)現(xiàn),其語法形式如下:
DELETE FROM tablename WHERE CONDITION;在上述語句中,參數(shù)tablename表示所要刪除數(shù)據(jù)記錄的表名,參數(shù)CONDITION指定刪除滿足條件的特定數(shù)據(jù)記錄。
mysql> create database school; #創(chuàng)建數(shù)據(jù)庫school mysql> use school; #選擇數(shù)據(jù)庫school mysql> create table class(id int UNIQUE AUTO_INCREMENT, name varchar(128) UNIQUE, teacher varchar(64)); #創(chuàng)建表class,指定id 字段自增長 mysql> insert into class(id, name, teacher) values(1, '一班', 'Martin'),(2,'二班', 'Rock'),(3, '三班', 'Janny'); # 插入多條記錄 mysql> delete from class where teacher = 'Martin'; #通過teacher字段刪除記錄 或 mysql> delete from class where id = 1; #通過id 字段刪除匹配的記錄5.2 刪除所有數(shù)據(jù)記錄
在MySQL中刪除所有數(shù)據(jù)記錄同樣可通過SQL語句DELETE來實(shí)現(xiàn),其語法形式如下:
DELETE FROM tablename WHERE CONDITION; # 或 DELETE FROM tablename;在上述語句中,為了刪除所有的數(shù)據(jù)記錄,參數(shù)CONDITION需要滿足表tablename中所有數(shù)據(jù)記錄,如id>0; 或者無關(guān)鍵字WHERE語句。
mysql> create database school; #創(chuàng)建數(shù)據(jù)庫school mysql> use school; #選擇數(shù)據(jù)庫school mysql> create table class(id int UNIQUE AUTO_INCREMENT, name varchar(128) UNIQUE, teacher varchar(64)); #創(chuàng)建表class,指定id 字段自增長 mysql> insert into class(id, name, teacher) values(1, '一班', 'Martin'),(2,'二班', 'Rock'),(3, '三班', 'Janny'); # 插入多條記錄 mysql> delete from class ; #直接刪除所有記錄 或 mysql> delete from class where id > 0; #通過id 字段刪除匹配的所有記錄參考資料:
總結(jié)
以上是生活随笔為你收集整理的MySQL中表的操作的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 烫伤后可以涂牙膏或酱油吗?
- 下一篇: MySQL中的整数类型