Mysql增删改查(CURD)
文章目錄
- 一、數(shù)據(jù)庫(kù)操作
- 1.1 創(chuàng)建數(shù)據(jù)庫(kù)
- 1.2 .查看數(shù)據(jù)庫(kù)
- 1.3 修改數(shù)據(jù)庫(kù)
- 1.4 刪除數(shù)據(jù)庫(kù)
- 二、表的基本操作
- 2.1 表的基本概念
- 2.2 創(chuàng)建表
- 2.3 查看表
- 2.4 修改表結(jié)構(gòu)
- 2.4.1 修改表名
- 2.4.2 修改字段數(shù)據(jù)類型
- 2.4.3 修改多個(gè)字段的數(shù)據(jù)類型
- 2.4.4 修改字段名
- 2.4.5 修改字段名并修改字段類型
- 2.4 6.添加字段
- 2.4.7 刪除字段
- 三、刪除表
- 四、插入數(shù)據(jù)
- 五、更新數(shù)據(jù)
- 六、刪除數(shù)據(jù)
- truncate與delete刪除全部記錄(字段)的區(qū)別
一、數(shù)據(jù)庫(kù)操作
1.1 創(chuàng)建數(shù)據(jù)庫(kù)
語(yǔ)法: create database 庫(kù)名 charset utf8;
例如:創(chuàng)建一個(gè)名為test1的數(shù)據(jù)庫(kù)
create database test1;
選擇連接–右鍵選擇"New Database" 輸入數(shù)據(jù)庫(kù)名 ,點(diǎn)擊ok即可
1.2 .查看數(shù)據(jù)庫(kù)
使用sql語(yǔ)句查看
語(yǔ)法:show databases;
查看已有數(shù)據(jù)庫(kù)的創(chuàng)建信息
語(yǔ)法:show create database 數(shù)據(jù)庫(kù)名;
使用圖形化界面查看創(chuàng)建信息
選擇要查看的庫(kù)名右鍵-“Edit Database”
1.3 修改數(shù)據(jù)庫(kù)
語(yǔ)法:alter database 數(shù)據(jù)庫(kù)名 character set 新編碼;
例如:修改test1庫(kù)的編碼為gbk
選中庫(kù)名 右鍵 選中“Edit Database”
1.4 刪除數(shù)據(jù)庫(kù)
注意:數(shù)據(jù)庫(kù)一旦刪除則數(shù)據(jù)庫(kù)中的表和數(shù)據(jù)都會(huì)被一同刪除
使用SQL語(yǔ)句刪除
語(yǔ)法:drop database 庫(kù)名;
例如:刪除test1庫(kù)
drop database test1
使用圖形化界面刪除
選中要?jiǎng)h除的庫(kù)名–右鍵–選中“Delete Database”
二、表的基本操作
2.1 表的基本概念
數(shù)據(jù)庫(kù)和表的關(guān)系
每個(gè)數(shù)據(jù)庫(kù)包含N張表,及表示在庫(kù)中
表(二維表)
行和列組成:可以將復(fù)雜的數(shù)據(jù)保存在簡(jiǎn)單的表中
表中的每一行就是一條完整的記錄
表中的列用于保存每條記錄中特點(diǎn)的信息
2.2 創(chuàng)建表
語(yǔ)法:
注意:
例如創(chuàng)建一個(gè)學(xué)生信息表students(id,name,gender,age,height,cls_id)等
create table students(id int unsigned primary key auto_increment not null,name varchar(20) default '',age tinyint unsigned default 0,height decimal(5,2),gender enum('男','女','保密') default '保密',cls_id int unsigned default 0,is_delete bit default 0);b.使用圖形化界面
點(diǎn)擊選擇的庫(kù)名雙擊 選擇“Table” 右鍵–“New Table”
2.3 查看表
查看表的基本結(jié)構(gòu)
語(yǔ)法: desc 表名
例如:查看student表的結(jié)構(gòu)
查看表的詳細(xì)結(jié)構(gòu)(還可以查看存儲(chǔ)引擎和字符集)
語(yǔ)法:show create table 表名;
例如:查看student表的詳細(xì)結(jié)構(gòu)
2.4 修改表結(jié)構(gòu)
2.4.1 修改表名
語(yǔ)法: alter table 舊表名 rename 新表名
例如:將students表名修改為student;
或者 rename table 舊表名 to 新表名
2.4.2 修改字段數(shù)據(jù)類型
語(yǔ)法:alter table 表名 modify 列名 新字段類型
例如:將student表中id的數(shù)據(jù)類型 修改為int(10)
2.4.3 修改多個(gè)字段的數(shù)據(jù)類型
語(yǔ)法: alter table 表名 modify 列名1 新字段類型1,modify 列名2 新字段類型2,.....modify 列名n 新字段類型n;例如:修改student 表中id int(8) , name varchar(30)
mysql> alter table student modify id int(8),modify name varchar(30); Query OK, 0 rows affected (0.01 sec) Records: 0 Duplicates: 0 Warnings: 0mysql> desc student; +-----------+----------------------------+------+-----+---------+-------+ | Field | Type | Null | Key | Default | Extra | +-----------+----------------------------+------+-----+---------+-------+ | id | int(8) | NO | PRI | NULL | | | name | varchar(30) | YES | | NULL | | | age | tinyint(3) unsigned | YES | | 0 | | | height | decimal(5,2) | YES | | NULL | | | gender | enum('男','女','保密') | YES | | 保密 | | | cls_id | int(10) unsigned | YES | | 0 | | | is_delete | bit(1) | YES | | b'0' | | +-----------+----------------------------+------+-----+---------+-------+2.4.4 修改字段名
語(yǔ)法:alter table 表名 change 舊字段名 新字段名 舊字段類型
例如:student 表中g(shù)ender 修改為sex
mysql> alter table student change gender sex enum('男','女','保密');2.4.5 修改字段名并修改字段類型
語(yǔ)法:alter table 表名 change 舊字段名 新字段名 新字段類型
例如:student 表中sex 修改為gender 數(shù)據(jù)類型 varchar(2)
2.4 6.添加字段
語(yǔ)法:alter table 表名 add 字段名 字段類型 [完整性約束] [first |after 字段名]
例1:在student 表末尾添加score字段
mysql> alter table student add score smallint(3) not null default 60; Query OK, 0 rows affected (0.02 sec) Records: 0 Duplicates: 0 Warnings: 0mysql> select * from student; Empty set (0.01 sec)mysql> desc student; +-----------+---------------------+------+-----+---------+-------+ | Field | Type | Null | Key | Default | Extra | +-----------+---------------------+------+-----+---------+-------+ | id | int(8) | NO | PRI | NULL | | | name | varchar(30) | YES | | NULL | | | age | tinyint(3) unsigned | YES | | 0 | | | height | decimal(5,2) | YES | | NULL | | | gender | varchar(2) | YES | | NULL | | | cls_id | int(10) unsigned | YES | | 0 | | | is_delete | bit(1) | YES | | b'0' | | | score | smallint(3) | NO | | 60 | | +-----------+---------------------+------+-----+---------+-------+例2:在student 表第一個(gè)位置添加phone字段
mysql> alter table student add phone char(11) not null first; mysql> desc student; +-----------+---------------------+------+-----+---------+-------+ | Field | Type | Null | Key | Default | Extra | +-----------+---------------------+------+-----+---------+-------+ | phone | char(11) | NO | | NULL | | | id | int(8) | NO | PRI | NULL | | | name | varchar(30) | YES | | NULL | | | age | tinyint(3) unsigned | YES | | 0 | |例3:在student 表中age的后面添加class字段
mysql> alter table student add class varchar(6) after age;2.4.7 刪除字段
語(yǔ)法: alter table 表名 drop 列名
例:刪除表 student 中phone
三、刪除表
drop table 表名;
刪除表中所有字段,保留表結(jié)構(gòu)語(yǔ)法:truncate table 表名
b.使用圖形化界面刪除
四、插入數(shù)據(jù)
1.為所有字段插入一條數(shù)據(jù)
語(yǔ)法:
insert [into] 表名[(字段名1,字段名2,字段名3,....)] values|value(值1,值2,值3....);
例如:創(chuàng)建一張表student(sno主鍵自增 sname非空 age sex 默認(rèn) 男 email 唯一)
mysql> create table students(id int unsigned primary key auto_increment not null,name varchar(20),age smallint,sex enum('男','女','保密') default '保密', email varchar(20) unique );mysql> desc students; +-------+----------------------------+------+-----+---------+----------------+ | Field | Type | Null | Key | Default | Extra | +-------+----------------------------+------+-----+---------+----------------+ | id | int(10) unsigned | NO | PRI | NULL | auto_increment | | name | varchar(20) | YES | | NULL | | | age | smallint(6) | YES | | NULL | | | sex | enum('男','女','保密') | YES | | 保密 | | | email | varchar(20) | YES | UNI | NULL | | +-------+----------------------------+------+-----+---------+----------------+為student表所有字段插入數(shù)據(jù)
注意:表后面可以加字段名也可以不加字段名,如果沒(méi)有添加字段名則插入的值順序要與表結(jié)構(gòu)字段順序相同
# 插入單條數(shù)據(jù) mysql> insert into students (name,age,sex,email) value ("laowang",18,'男','sss@qq.com'); mysql> insert into students (name,age,sex,email) value ("laowang",18,'男','sss@qq.com');# 一次性插入多條數(shù)據(jù) mysql> insert into students (name,age,sex,email) values ("laoyang",19,'女','sfaasss@qq.com'), ('laoli',20,'女','1dsf@qq.com');mysql> select * from students; +----+----------+------+------+----------------+ | id | name | age | sex | email | +----+----------+------+------+----------------+ | 1 | laowang | 18 | 男 | sss@qq.com | | 4 | laozhang | 19 | 女 | aasss@qq.com | | 5 | laoyang | 19 | 女 | sfaasss@qq.com | | 6 | laoli | 20 | 女 | 1dsf@qq.com | +----+----------+------+------+----------------+2.為指定字段插入一條數(shù)據(jù)
語(yǔ)法:insert [into] 表名(字段名1,字段名2,字段名3,....) values|value(值1,值2,值3....);
例如:給表student中sname和age插入數(shù)據(jù)
3.使用SET方式插入一條數(shù)據(jù)
語(yǔ)法:
insert [into] 表名 set 字段名1=字段值[,字段名2=字段值2....];
例如:使用set方式給student表所有字段插入數(shù)據(jù)
4.同時(shí)插入多條數(shù)據(jù)
語(yǔ)法:
例如給表student同時(shí)插入多條數(shù)據(jù)
a.給所有字段插入多條數(shù)據(jù)
b.給指定字段插入多條數(shù)據(jù)
insert into students (name,age) values ('bertwu',18),('tom',20)5.插入查詢結(jié)果
語(yǔ)法:
insert [into] 表名(字段名1,字段名2..) select 字段名1,字段名2... from 表 where 條件
注意:插入表的字段和查詢的字段個(gè)數(shù)和類型要保持一致
例如:將student表中的數(shù)據(jù)查詢結(jié)果插入到t_student表
1.創(chuàng)建t_student表
2.使用插入查詢結(jié)果為女插入到t_student表
insert into t_student select * from students where sex ='女'; mysql> select * from t_student; +----+----------+------+------+----------------+ | id | name | age | sex | email | +----+----------+------+------+----------------+ | 4 | laozhang | 19 | 女 | aasss@qq.com | | 5 | laoyang | 19 | 女 | sfaasss@qq.com | | 6 | laoli | 20 | 女 | 1dsf@qq.com | +----+----------+------+------+----------------+ 3 rows in set (0.00 sec)五、更新數(shù)據(jù)
1.更新指定數(shù)據(jù)
語(yǔ)法:
update 表名 set 字段名1=值1 [,字段名2=值2....] where 條件
例如:將students表中姓名為laowang的姓名修改為"小喬"
update students set name="小喬" where name = 'laowang'2.更新全部數(shù)據(jù)
語(yǔ)法:
update 表名 set 字段名1=值1 [,字段名2=值2....]
例如:將student表中年齡都修改為18
六、刪除數(shù)據(jù)
1.刪除指定數(shù)據(jù)
語(yǔ)法:
delete from 表名 where 條件
例如:刪除性別為保密的學(xué)生信息
2.刪除全部數(shù)據(jù)
語(yǔ)法:delete from 表名
例如:刪除學(xué)生表的全部數(shù)據(jù)
3.truncate關(guān)鍵字刪除數(shù)據(jù)
語(yǔ)法: truncate 表名
例如:刪除t_student表中的全部數(shù)據(jù)
truncate與delete刪除全部記錄(字段)的區(qū)別
delete是數(shù)據(jù)操縱語(yǔ)言DML 而truncate是數(shù)據(jù)定義語(yǔ)言DDL
delete刪除數(shù)據(jù)是一條一條刪除
truncate刪除數(shù)據(jù)是保留表結(jié)構(gòu),直接刪除數(shù)據(jù),刪除后表的狀態(tài)相當(dāng)于新表
truncate的效率比delete高
delete刪除數(shù)據(jù),會(huì)顯示刪除行數(shù)
truncate不會(huì)顯示
delete刪除記錄后,再次向表添加數(shù)據(jù),自增的值會(huì)在原來(lái)最大值+1
truncate刪除記錄后,會(huì)從1開(kāi)始自增
delete操作可以進(jìn)行回滾
truncate操作隱式提交,不可以回滾
回滾就類似你電腦的回收站一樣,delete刪除的數(shù)據(jù)可以恢復(fù),而truncate刪除的數(shù)據(jù)不能回復(fù)。
總結(jié)
以上是生活随笔為你收集整理的Mysql增删改查(CURD)的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: 词性标注 python
- 下一篇: python编写程序输出诗句_pytho