日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 运维知识 > 数据库 >内容正文

数据库

Mysql增删改查(CURD)

發(fā)布時(shí)間:2023/12/16 数据库 31 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Mysql增删改查(CURD) 小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

文章目錄

  • 一、數(shù)據(jù)庫操作
    • 1.1 創(chuàng)建數(shù)據(jù)庫
    • 1.2 .查看數(shù)據(jù)庫
    • 1.3 修改數(shù)據(jù)庫
    • 1.4 刪除數(shù)據(jù)庫
  • 二、表的基本操作
    • 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ù)庫操作

1.1 創(chuàng)建數(shù)據(jù)庫

  • 使用sql語句創(chuàng)建
    語法: create database 庫名 charset utf8;
    例如:創(chuàng)建一個(gè)名為test1的數(shù)據(jù)庫
    create database test1;
  • 使用圖形化界面Navicat創(chuàng)建
    選擇連接–右鍵選擇"New Database" 輸入數(shù)據(jù)庫名 ,點(diǎn)擊ok即可
  • 1.2 .查看數(shù)據(jù)庫

  • 使用sql語句查看
    語法:show databases;

  • 查看已有數(shù)據(jù)庫的創(chuàng)建信息
    語法:show create database 數(shù)據(jù)庫名;

  • 使用圖形化界面查看創(chuàng)建信息
    選擇要查看的庫名右鍵-“Edit Database”

  • 1.3 修改數(shù)據(jù)庫

  • sql語句修改
    語法:alter database 數(shù)據(jù)庫名 character set 新編碼;
    例如:修改test1庫的編碼為gbk
  • 圖形化界面修改
    選中庫名 右鍵 選中“Edit Database”
  • 1.4 刪除數(shù)據(jù)庫

    注意:數(shù)據(jù)庫一旦刪除則數(shù)據(jù)庫中的表和數(shù)據(jù)都會(huì)被一同刪除

  • 使用SQL語句刪除
    語法:drop database 庫名;
    例如:刪除test1庫
    drop database test1

  • 使用圖形化界面刪除
    選中要?jiǎng)h除的庫名–右鍵–選中“Delete Database”

  • 二、表的基本操作

    2.1 表的基本概念

  • 數(shù)據(jù)庫和表的關(guān)系
    每個(gè)數(shù)據(jù)庫包含N張表,及表示在庫中

  • 表(二維表)
    行和列組成:可以將復(fù)雜的數(shù)據(jù)保存在簡(jiǎn)單的表中
    表中的每一行就是一條完整的記錄
    表中的列用于保存每條記錄中特點(diǎn)的信息

  • 2.2 創(chuàng)建表

  • 使用sql語句創(chuàng)建
    語法:
  • create table 表名(字段名1 字段類型1 [完整性約束],字段名2 字段類型2 [完整性約束],......字段名n 字段類型n [完整性約束])

    注意:

  • 表名不能使用關(guān)鍵字 例如 database select where
  • 每組字段名 字段類型之間使用“,”隔開,但最后一個(gè)不需要“,”
  • 例如創(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)擊選擇的庫名雙擊 選擇“Table” 右鍵–“New Table”

    2.3 查看表

  • 查看表的基本結(jié)構(gòu)
    語法: desc 表名
    例如:查看student表的結(jié)構(gòu)

    mysql> desc students; +-----------+----------------------------+------+-----+---------+----------------+ | Field | Type | Null | Key | Default | Extra | +-----------+----------------------------+------+-----+---------+----------------+ | id | int(10) unsigned | NO | PRI | NULL | auto_increment | | name | varchar(20) | YES | | | | | 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' | | +-----------+----------------------------+------+-----+---------+----------------+
  • 查看表的詳細(xì)結(jié)構(gòu)(還可以查看存儲(chǔ)引擎和字符集)
    語法:show create table 表名;
    例如:查看student表的詳細(xì)結(jié)構(gòu)

    mysql> show create table students \G; *************************** 1. row ***************************Table: students Create Table: CREATE TABLE `students` (`id` int(10) unsigned NOT NULL AUTO_INCREMENT,`name` varchar(20) DEFAULT '',`age` tinyint(3) unsigned DEFAULT '0',`height` decimal(5,2) DEFAULT NULL,`gender` enum('男','女','保密') DEFAULT '保密',`cls_id` int(10) unsigned DEFAULT '0',`is_delete` bit(1) DEFAULT b'0',PRIMARY KEY (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8 1 row in set (0.00 sec)
  • 2.4 修改表結(jié)構(gòu)

    2.4.1 修改表名

    語法: alter table 舊表名 rename 新表名
    例如:將students表名修改為student;

    alter table students rename student;

    或者 rename table 舊表名 to 新表名

    2.4.2 修改字段數(shù)據(jù)類型

    語法:alter table 表名 modify 列名 新字段類型
    例如:將student表中id的數(shù)據(jù)類型 修改為int(10)

    mysql> alter table student modify id int(10); Query OK, 0 rows affected (0.04 sec) Records: 0 Duplicates: 0 Warnings: 0mysql> mysql> desc student; +-----------+----------------------------+------+-----+---------+-------+ | Field | Type | Null | Key | Default | Extra | +-----------+----------------------------+------+-----+---------+-------+ | id | int(10) | NO | PRI | NULL | | | name | varchar(20) | YES | | | | | 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.3 修改多個(gè)字段的數(shù)據(jù)類型

    語法: 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 修改字段名

    語法:alter table 表名 change 舊字段名 新字段名 舊字段類型

    例如:student 表中g(shù)ender 修改為sex

    mysql> alter table student change gender sex enum('男','女','保密');

    2.4.5 修改字段名并修改字段類型

    語法:alter table 表名 change 舊字段名 新字段名 新字段類型
    例如:student 表中sex 修改為gender 數(shù)據(jù)類型 varchar(2)

    mysql> alter table student change sex gender varchar(2);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' | | +-----------+---------------------+------+-----+---------+-------+

    2.4 6.添加字段

    語法: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 刪除字段

    語法: alter table 表名 drop 列名
    例:刪除表 student 中phone

    mysql> alter table student drop phone;

    三、刪除表

  • 使用sql語句刪除
    drop table 表名;
  • mysql> create table test1(-> id int(8)-> );Query OK, 0 rows affected (0.01 sec)mysql> show tables; +--------------------+ | Tables_in_students | +--------------------+ | student | | test1 | +--------------------+mysql> drop table test1;mysql> show tables; +--------------------+ | Tables_in_students | +--------------------+ | student | +--------------------+

    刪除表中所有字段,保留表結(jié)構(gòu)語法:truncate table 表名

    b.使用圖形化界面刪除

    四、插入數(shù)據(jù)

    1.為所有字段插入一條數(shù)據(jù)
    語法:
    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ù)

    注意:表后面可以加字段名也可以不加字段名,如果沒有添加字段名則插入的值順序要與表結(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ù)
    語法:insert [into] 表名(字段名1,字段名2,字段名3,....) values|value(值1,值2,值3....);
    例如:給表student中sname和age插入數(shù)據(jù)

    insert into students (name,age) value ('xiaomie',20) select * from students 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 | | 7 | xiaomie | 20 | 保密 | NULL | +----+----------+------+--------+----------------+

    3.使用SET方式插入一條數(shù)據(jù)
    語法:
    insert [into] 表名 set 字段名1=字段值[,字段名2=字段值2....];
    例如:使用set方式給student表所有字段插入數(shù)據(jù)

    insert into students set name="狄仁杰",age=18,sex='男',email='fsdfs@qq.com';

    4.同時(shí)插入多條數(shù)據(jù)
    語法:

    insert [into] 表名[(字段名1,字段名2,字段名3,....)] values|value(1,2,3....), (1,2,3....),.......

    例如給表student同時(shí)插入多條數(shù)據(jù)
    a.給所有字段插入多條數(shù)據(jù)

    mysql> insert into students (name,age,sex,email) values ("laoyang",19,'女','sfaasss@qq.com'), ('laoli',20,'女','1dsf@qq.com');

    b.給指定字段插入多條數(shù)據(jù)

    insert into students (name,age) values ('bertwu',18),('tom',20)

    5.插入查詢結(jié)果
    語法:
    insert [into] 表名(字段名1,字段名2..) select 字段名1,字段名2... from 表 where 條件
    注意:插入表的字段和查詢的字段個(gè)數(shù)和類型要保持一致
    例如:將student表中的數(shù)據(jù)查詢結(jié)果插入到t_student表
    1.創(chuàng)建t_student表

    create table t_student (id int unsigned primary key auto_increment not null,name varchar(20),age smallint,sex enum('男','女','保密') default '保密',email varchar(20) unique); # 查詢表結(jié)構(gòu),與student表保持一致 mysql> desc t_student; +-------+----------------------------+------+-----+---------+----------------+ | 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 | | +-------+----------------------------+------+-----+---------+----------------+

    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ù)
    語法:
    update 表名 set 字段名1=值1 [,字段名2=值2....] where 條件

    例如:將students表中姓名為laowang的姓名修改為"小喬"

    update students set name="小喬" where name = 'laowang'

    2.更新全部數(shù)據(jù)
    語法:
    update 表名 set 字段名1=值1 [,字段名2=值2....]
    例如:將student表中年齡都修改為18

    update students set name="小喬" where name = 'laowang' mysql> select * from students; +----+-----------+------+--------+----------------+ | id | name | age | sex | email | +----+-----------+------+--------+----------------+ | 1 | 小喬 | 18 || sss@qq.com | | 4 | laozhang | 18 || aasss@qq.com | | 5 | laoyang | 18 || sfaasss@qq.com | | 6 | laoli | 18 || 1dsf@qq.com | | 7 | xiaomie | 18 | 保密 | NULL | | 8 | 狄仁杰 | 18 || fsdfs@qq.com | | 10 | tom | 18 | 保密 | NULL | +----+-----------+------+--------+----------------+

    六、刪除數(shù)據(jù)

    1.刪除指定數(shù)據(jù)
    語法:
    delete from 表名 where 條件
    例如:刪除性別為保密的學(xué)生信息

    mysql> delete from students where sex="保密";

    2.刪除全部數(shù)據(jù)
    語法:delete from 表名
    例如:刪除學(xué)生表的全部數(shù)據(jù)

    delete from students

    3.truncate關(guān)鍵字刪除數(shù)據(jù)
    語法: truncate 表名
    例如:刪除t_student表中的全部數(shù)據(jù)

    truncate t_student

    truncate與delete刪除全部記錄(字段)的區(qū)別

  • delete是數(shù)據(jù)操縱語言DML 而truncate是數(shù)據(jù)定義語言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ì)在原來最大值+1
    truncate刪除記錄后,會(huì)從1開始自增

  • delete操作可以進(jìn)行回滾
    truncate操作隱式提交,不可以回滾
    回滾就類似你電腦的回收站一樣,delete刪除的數(shù)據(jù)可以恢復(fù),而truncate刪除的數(shù)據(jù)不能回復(fù)。

  • 總結(jié)

    以上是生活随笔為你收集整理的Mysql增删改查(CURD)的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。

    如果覺得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。