MySQL学习——操作数据库(增删改查)(一)
數(shù)據(jù)庫是長(zhǎng)期存儲(chǔ)在計(jì)算機(jī)內(nèi),有組織的和可共享的數(shù)據(jù)集合,簡(jiǎn)而言之,數(shù)據(jù)庫就是一個(gè)存儲(chǔ)數(shù)據(jù)的地方,只是在其存儲(chǔ)方式有特定的規(guī)律,這樣做可以方便處理數(shù)據(jù),數(shù)據(jù)庫的操作包括創(chuàng)建數(shù)據(jù)庫和刪除數(shù)據(jù)庫,還有數(shù)據(jù)庫中的查詢與修改,這些操作都是數(shù)據(jù)庫管理的基礎(chǔ)。
一,創(chuàng)建數(shù)據(jù)庫
創(chuàng)建數(shù)據(jù)庫是指在數(shù)據(jù)庫系統(tǒng)中劃分一塊空間,用來存儲(chǔ)相應(yīng)的數(shù)據(jù),這是進(jìn)行表操作的基礎(chǔ),也是進(jìn)行數(shù)據(jù)庫管理的基礎(chǔ),在mysql中創(chuàng)建數(shù)據(jù)庫需要通過SQL語句CREATE DATABASES實(shí)現(xiàn),語法形式如下:
CREATE DATABASE 數(shù)據(jù)庫名; 其中,‘?dāng)?shù)據(jù)庫名’參數(shù)表示所要?jiǎng)?chuàng)建的數(shù)據(jù)庫的名稱,在創(chuàng)建數(shù)據(jù)庫之前,可以使用SHOW語句來查看現(xiàn)在已經(jīng)存在的數(shù)據(jù)庫,語法形式如下: SHOW DATABASE; mysql> show databases; +--------------------+ | Database | +--------------------+ | information_schema | | liuyandb | | mysql | | performance_schema | | python | | sys | +--------------------+ 6 rows in set (0.00 sec) mysql>
二,刪除數(shù)據(jù)庫
刪除數(shù)據(jù)庫是指數(shù)據(jù)庫系統(tǒng)中刪除已經(jīng)存在的數(shù)據(jù)庫,刪除數(shù)據(jù)庫之后,原來分配的空間將被回收,值得注意的是,刪除數(shù)據(jù)庫會(huì)刪除數(shù)據(jù)庫中所有的表和所有數(shù)據(jù)。
刪除數(shù)據(jù)庫是通過SQL語句 DROP DATABSE實(shí)現(xiàn)的,其語法格式如下/;. DROP DATABASE 數(shù)據(jù)庫名;
舉例說明
創(chuàng)建一個(gè)叫做mybook的數(shù)據(jù)庫,查詢?nèi)缓笤趯⑵鋭h除查看:
mysql> show databases; +--------------------+ | Database | +--------------------+ | information_schema | | liuyandb | | mysql | | performance_schema | | python | | sys | +--------------------+ 6 rows in set (0.00 sec) mysql> create database mybook; Query OK, 1 row affected (0.04 sec) mysql> show databases; +--------------------+ | Database | +--------------------+ | information_schema | | liuyandb | | mybook | | mysql | | performance_schema | | python | | sys | +--------------------+ 7 rows in set (0.00 sec) mysql> drop database mybook; Query OK, 0 rows affected (0.00 sec) mysql> show databases; +--------------------+ | Database | +--------------------+ | information_schema | | liuyandb | | mysql | | performance_schema | | python | | sys | +--------------------+ 6 rows in set (0.01 sec) mysql>
三:創(chuàng)建,修改和刪除表
表是數(shù)據(jù)庫存儲(chǔ)數(shù)據(jù)的基本單位,一個(gè)表包含若干字段或記錄,表的操作包括創(chuàng)建表,修改表和刪除表,這些操作都是數(shù)據(jù)庫管理中最基本也是最重要的操作。
3.1創(chuàng)建表
MySQL中創(chuàng)建表是通過SQL語句CREATE TABLE 實(shí)現(xiàn)的,其語法格式如下:
USE 數(shù)據(jù)庫名
CREATE TABLE 表名(屬性名 數(shù)據(jù)類型【完整約束條件】,
屬性名 數(shù)據(jù)類型【完整約束條件】,
.
.
);
其中 USE數(shù)據(jù)庫名表示使用某個(gè)數(shù)據(jù)庫,‘表名’參數(shù)表示所要?jiǎng)?chuàng)建的表的名稱 ;
‘屬性名’參數(shù)表示表中字段的名稱;
‘?dāng)?shù)據(jù)類型’參數(shù)指定字段的數(shù)據(jù)類型,
‘完整性約束條件’參數(shù)指定字段的某些特殊約束條件
注:在使用create table 語句創(chuàng)建表時(shí),首先使用USE語句選擇數(shù)據(jù)庫,選擇數(shù)據(jù)庫語句的基本格式為‘USE 數(shù)據(jù)庫名’,如果沒有選擇數(shù)據(jù)庫,創(chuàng)建表時(shí)會(huì)出現(xiàn)‘ERROR 1046(3D000):No DATABASE SELECTED’的錯(cuò)誤。
表名不能使用SQL語言的關(guān)鍵字,如create,updata和order等都不能做表名,一個(gè)表中可以有一個(gè)或多個(gè)屬性,定義時(shí)字母大小寫均可,各屬性之間用逗號(hào)隔開,最后一個(gè)屬性后面不需要加逗號(hào)。
注:完整性約束條件是對(duì)字段進(jìn)行限制,要求用戶對(duì)該屬性進(jìn)行操作符合特定的要求,如果不滿足完整性約束條件,數(shù)據(jù)庫系統(tǒng)將不執(zhí)行用戶的操作,其目的是為了保證數(shù)據(jù)庫中的數(shù)據(jù)完整性,下表為完整性約束條件:
例子:創(chuàng)建一個(gè)名為example0的表:
mysql> show databases;
+--------------------+
| Database |
+--------------------+
| information_schema |
| liuyandb |
| mysql |
| performance_schema |
| python |
| sys |
+--------------------+
6 rows in set (0.00 sec)
mysql> create database text;
Query OK, 1 row affected (0.01 sec)
mysql> use text;
Database changed
mysql> create table example0(id int,
-> name varchar(20),
-> sex boolean
-> );
Query OK, 0 rows affected (0.34 sec)
mysql> desc example0;
+-------+-------------+------+-----+---------+-------+
| Field | Type | Null | Key | Default | Extra |
+-------+-------------+------+-----+---------+-------+
| id | int(11) | YES | | NULL | |
| name | varchar(20) | YES | | NULL | |
| sex | tinyint(1) | YES | | NULL | |
+-------+-------------+------+-----+---------+-------+
3 rows in set (0.01 sec)
mysql>
注:相關(guān)概念:
主鍵是表的一個(gè)特殊字段,該字段能夠唯一的標(biāo)識(shí)該表中的每條信息,主鍵和記錄的關(guān)系,如同身份證和人的關(guān)系,主鍵用來標(biāo)識(shí)每個(gè)記錄,每個(gè)記錄的主鍵值都不相同,身份證是用來表名人的身份,每個(gè)人都具有唯一的身份證號(hào),設(shè)置表的主鍵指在創(chuàng)建表時(shí)設(shè)置表的某個(gè)字段為該表的主鍵。
1.單字段主鍵
主鍵是由一個(gè)字段構(gòu)成時(shí),可以直接在該字段的后面加上PRIMARY KEY 來設(shè)置主鍵,語法規(guī)則如下:
屬性名 數(shù)據(jù)類型 PRIMARY KEY
其中‘屬性名’參數(shù)表示表中字段的名稱,‘?dāng)?shù)據(jù)類型’參數(shù)指定字段的數(shù)據(jù)類型。
例:在example1表中設(shè)置stu_id作為主鍵,SQL代碼如下:
mysql> create table example1(stu_id int primary key,
-> stu_name varchar(20),
-> stu_sex boolean
-> );
Query OK, 0 rows affected (0.33 sec)
mysql> desc example1;
+----------+-------------+------+-----+---------+-------+
| Field | Type | Null | Key | Default | Extra |
+----------+-------------+------+-----+---------+-------+
| stu_id | int(11) | NO | PRI | NULL | |
| stu_name | varchar(20) | YES | | NULL | |
| stu_sex | tinyint(1) | YES | | NULL | |
+----------+-------------+------+-----+---------+-------+
3 rows in set (0.00 sec)
mysql>
2.多字段主鍵
主鍵是由多個(gè)屬性組合而成時(shí),在屬性定義完之后統(tǒng)一設(shè)置主鍵,語法規(guī)則如下:
PRIMARY KEY(屬性1,屬性2。。。。屬性n)
例:在example2表中設(shè)置stu_id與course_id倆個(gè)字段為主鍵,SQL代碼如下:
mysql>
mysql> create table example2(stu_id int,
-> course_id int,
-> grade float,
-> primary key(stu_id,course_id)
-> );
Query OK, 0 rows affected (0.43 sec)
mysql> desc example2;
+-----------+---------+------+-----+---------+-------+
| Field | Type | Null | Key | Default | Extra |
+-----------+---------+------+-----+---------+-------+
| stu_id | int(11) | NO | PRI | NULL | |
| course_id | int(11) | NO | PRI | NULL | |
| grade | float | YES | | NULL | |
+-----------+---------+------+-----+---------+-------+
3 rows in set (0.00 sec)
mysql>
查看表基本結(jié)構(gòu)語句(DESCRIBE)
DESCRIBE 表名;或者 DESC 表名
查看表詳細(xì)結(jié)構(gòu)語句 SHOW CREATE TABLE
SHOW CREATE TABLE example1G
例子:
mysql>
mysql> desc example1;
+----------+-------------+------+-----+---------+-------+
| Field | Type | Null | Key | Default | Extra |
+----------+-------------+------+-----+---------+-------+
| stu_id | int(11) | NO | PRI | NULL | |
| stu_name | varchar(20) | YES | | NULL | |
| stu_sex | tinyint(1) | YES | | NULL | |
+----------+-------------+------+-----+---------+-------+
3 rows in set (0.00 sec)
mysql> show create table example1G
*************************** 1. row ***************************
Table: example1
Create Table: CREATE TABLE `example1` (
`stu_id` int(11) NOT NULL,
`stu_name` varchar(20) DEFAULT NULL,
`stu_sex` tinyint(1) DEFAULT NULL,
PRIMARY KEY (`stu_id`)
) ENGINE=InnoDB DEFAULT CHARSET=latin1
1 row in set (0.00 sec)
mysql>
總結(jié)
以上是生活随笔為你收集整理的MySQL学习——操作数据库(增删改查)(一)的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 咖啡店沙发购买注意事项
- 下一篇: Windows命令行打开常用界面