MySQL学习——操作数据库(增删改查)
Posted 葫芦七娃
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了MySQL学习——操作数据库(增删改查)相关的知识,希望对你有一定的参考价值。
数据库是长期存储在计算机内,有组织的和可共享的数据集合,简而言之,数据库就是一个存储数据的地方,只是在其存储方式有特定的规律,这样做可以方便处理数据,数据库的操作包括创建数据库和删除数据库,还有数据库中的查询与修改,这些操作都是数据库管理的基础。
一,创建数据库
创建数据库是指在数据库系统中划分一块空间,用来存储相应的数据,这是进行表操作的基础,也是进行数据库管理的基础,在mysql中创建数据库需要通过SQL语句CREATE DATABASES实现,语法形式如下:
CREATE DATABASE 数据库名;
其中,‘数据库名’参数表示所要创建的数据库的名称,在创建数据库之前,可以使用SHOW语句来查看现在已经存在的数据库,语法形式如下:
SHOW DATABASE;
mysql> show databases;
+--------------------+
| Database |
+--------------------+
| information_schema |
| liuyandb |
| mysql |
| performance_schema |
| python |
| sys |
+--------------------+
6 rows in set (0.00 sec)
mysql>
二,删除数据库
删除数据库是指数据库系统中删除已经存在的数据库,删除数据库之后,原来分配的空间将被回收,值得注意的是,删除数据库会删除数据库中所有的表和所有数据。
删除数据库是通过SQL语句 DROP DATABSE实现的,其语法格式如下/;.
DROP DATABASE 数据库名;
举例说明
创建一个叫做mybook的数据库,查询然后在将其删除查看:
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>
三:创建,修改和删除表
表是数据库存储数据的基本单位,一个表包含若干字段或记录,表的操作包括创建表,修改表和删除表,这些操作都是数据库管理中最基本也是最重要的操作。
3.1创建表
MySQL中创建表是通过SQL语句CREATE TABLE 实现的,其语法格式如下:
USE 数据库名
CREATE TABLE 表名(属性名 数据类型【完整约束条件】,
属性名 数据类型【完整约束条件】,
.
.
);
其中 USE数据库名表示使用某个数据库,‘表名’参数表示所要创建的表的名称 ;
‘属性名’参数表示表中字段的名称;
‘数据类型’参数指定字段的数据类型,
‘完整性约束条件’参数指定字段的某些特殊约束条件
注:在使用create table 语句创建表时,首先使用USE语句选择数据库,选择数据库语句的基本格式为‘USE 数据库名’,如果没有选择数据库,创建表时会出现‘ERROR 1046(3D000):No DATABASE SELECTED’的错误。
表名不能使用SQL语言的关键字,如create,updata和order等都不能做表名,一个表中可以有一个或多个属性,定义时字母大小写均可,各属性之间用逗号隔开,最后一个属性后面不需要加逗号。
注:完整性约束条件是对字段进行限制,要求用户对该属性进行操作符合特定的要求,如果不满足完整性约束条件,数据库系统将不执行用户的操作,其目的是为了保证数据库中的数据完整性,下表为完整性约束条件:
例子:创建一个名为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>
注:相关概念:
主键是表的一个特殊字段,该字段能够唯一的标识该表中的每条信息,主键和记录的关系,如同身份证和人的关系,主键用来标识每个记录,每个记录的主键值都不相同,身份证是用来表名人的身份,每个人都具有唯一的身份证号,设置表的主键指在创建表时设置表的某个字段为该表的主键。
1.单字段主键
主键是由一个字段构成时,可以直接在该字段的后面加上PRIMARY KEY 来设置主键,语法规则如下:
属性名 数据类型 PRIMARY KEY
其中‘属性名’参数表示表中字段的名称,‘数据类型’参数指定字段的数据类型。
例:在example1表中设置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.多字段主键
主键是由多个属性组合而成时,在属性定义完之后统一设置主键,语法规则如下:
PRIMARY KEY(属性1,属性2。。。。属性n)
例:在example2表中设置stu_id与course_id俩个字段为主键,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>
查看表基本结构语句(DESCRIBE)
DESCRIBE 表名;或者 DESC 表名
查看表详细结构语句 SHOW CREATE TABLE
SHOW CREATE TABLE example1\\G
例子:
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 example1\\G
*************************** 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>
以上是关于MySQL学习——操作数据库(增删改查)的主要内容,如果未能解决你的问题,请参考以下文章