数据库的基本操作

2019-09-29  本文已影响0人  wpf_register

原文链接

命令使用

1.命令结束符号

在书写完一个命令之后可以用以下符号结尾

select * from student;
+------+-------+---------------------+------+
| SId  | Sname | Sage                | Ssex |
+------+-------+---------------------+------+
| 01   | 赵雷  | 1990-01-01 00:00:00 | 男   |
| 02   | 钱电  | 1990-12-21 00:00:00 | 男   |
| 07   | 郑竹  | 1989-01-01 00:00:00 | 女   |
| 09   | 张三  | 2017-12-20 00:00:00 | 女   |
+------+-------+---------------------+------+
//是以垂直的形式展现查询数据
select * from student \G
*************************** 2. row ***************************
  SId: 02
Sname: 钱电
 Sage: 1990-12-21 00:00:00
 Ssex: 男
*************************** 3. row ***************************
  SId: 03
Sname: 孙风
 Sage: 1990-12-20 00:00:00
 Ssex: 男
*************************** 4. row ***************************
  SId: 04
Sname: 李云
 Sage: 1990-12-06 00:00:00
 Ssex: 男
2. 命令可以随意换行

只要按回车键的时候输入的语句里没有 ; 或者 \g 或者 \G 就算是语句没结束

mysql> SELECT
    -> NOW()
    -> ;
+---------------------+
| NOW()               |
+---------------------+
| 2018-02-06 17:57:15 |
+---------------------+
1 row in set (0.00 sec)
mysql>
3. 可以一次提交多个命令

可以在一条语句里写多个命令(命令之间用上面说的结束符分隔)

mysql> SELECT NOW(); SELECT NOW(); 
+---------------------+
| NOW()               |
+---------------------+
| 2018-02-06 18:00:05 |
+---------------------+
1 row in set (0.00 sec)
+---------------------+
| NOW()               |
+---------------------+
| 2018-02-06 18:00:05 |
+---------------------+
1 row in set (0.00 sec)
+---------------------+
mysql>
4. 使用\c清除本次操作
mysql> select now()
    -> \c
mysql>
5. 大小写问题

MySQL默认对命令的大小写并没有限制
但按照一般的代码规范,命令、函数等都要大写的,而一些名称类的东西,比如数据库名,表名、列名等都是建议小写

6. 字符串的表示

在命令里有时会使用到字符串,我们可以使用单引号''或者双引号""把字符串内容引起来

mysql> SELECT 'aaa';
+-----+
| aaa |
+-----+
| aaa |
+-----+
1 row in set (0.00 sec)
mysql> SELECT "aaa";
+-----+
| aaa |
+-----+
| aaa |
+-----+
1 row in set (0.00 sec)
mysql>

数据库相关操作

展示数据库:     SHOW DATABASES;
创建数据库:     CREATE DATABASE 数据库名;
切换当前数据库:  USE 数据库名
删除数据库:      DROP DATABASE 数据库名

数据表的基本操作

创建表

MySQL中创建表的基本语法

列之间用逗号隔开,属性之间用空格隔开

CREATE TABLE 表名 (
    列名1    列的类型    [列的属性],
    列名2    列的类型    [列的属性],
    ...
    列名n    列的类型    [列的属性]
);

为避免创建已经存在的表而报错,一般用IF NOT EXISTS
CREATE TABLE IF NOT EXISTS 表名(
    各个列信息的定义 ...
);
CREATE TABLE  student_info (
    number     INT,
    name       VARCHAR(5),
    sex        ENUM('男', '女'),
    id_number  CHAR(18),
    department VARCHAR(30),
    major      VARCHAR(30),
    enroll     DATE
);
展示当前数据库中的表
SHOW TABLES;
删除表
DROP TABLE 表1, 表2, ..., 表n;
//为避免删除不存在的表而报错,用IF EXISTS
DROP TABLE IF EXISTS 表名;
列的属性(约束条件)
  1. 默认值
列名 列的类型 DEFAULT 默认值
  1. 非空约束
列名 列的类型 NOT NULL
  1. 主键
    主键的列默认是NOT NULL,
列名 列的类型 PRIMARY KEY

或将主键单独声明 (多个列联合做主键时只能用这种方式)
PRIMARY KEY (列名1, 列名2, ...)
  1. 唯一性约束
    对于非主键如果想让MySQL校验数据的唯一性,可以把列或列组合声明为UNIQUE的,表明该列或者列组合的值是不允许重复的,这种列的属性叫做唯一性约束
列名 列的类型 UNIQUE 
列名 列的类型 UNIQUE KEY

或者
UNIQUE  (列名1, 列名2, ...)
UNIQUE KEY   (列名1, 列名2, ...)

主键跟唯一性约束的区别

  1. 自增
自增值从1开始
列名 列的类型 AUTO_INCREMENT

注意

上一篇 下一篇

猜你喜欢

热点阅读