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>

 

 

 

 

 

posted @ 2017-12-05 20:50  葫芦七娃  阅读(246)  评论(0编辑  收藏  举报