MySQL数据库管理

这篇博客详细介绍了MySQL数据库管理,包括常用的数据类型、查看数据库的方法、SQL语句的使用,如创建、删除数据库和表,以及如何管理表中的数据记录。还涉及到修改表结构、创建临时表、外键约束和数据库用户管理,包括用户创建、权限授予和撤销。
摘要由CSDN通过智能技术生成

MySQL数据库管理

1、常用的数据类型

类型 说明
int 整型,用于定义整数类型的数据
fload 单精度浮点4字节32位,准确表示到小数点后六位
double 双精度浮点8字节64位
char 固定长度的字符类型,用于定义字符类型数据。
varchar 可变长度的字符类型
text 文本
image 图片
decima(5,2) 5个有效长度数字,小数点后面有2位。指定长度数组

char

char的长度是不可变。char如果存入数据的实际长度比指定长度要小 会补空格至指定长度 如果存入的数据的实际长度大于指定长度,低版本会被截取高版本会报错。

varchar

varchar长度是可变的,默认会加一个隐藏的结束符,因此结束符会多算一个字节。2、查看数据库

2、查看数据库

2.1查看当前服务器中的数据库

SHOW DATABASES; #大小写不区分,分号“;”表示结束

mysql> show databases;
+--------------------+
| Database           |
+--------------------+
| information_schema |
| bbs                |
| kxy                |
| mysql              |
| performance_schema |
| sys                |
+--------------------+
6 rows in set (0.00 sec)

2.2查看数据库中包含的表

  1. 法一 :在库中查看表

  2. USE 数据库名;

  3. SHOW TABLES;

  4. 法二 :在库外查看表

  5. show tables from mysql;

    补充: 创建表时设置id自增。create table if not exists userInfo (

    id int PRIMARY KEY AUTO_INCREMENT,

    name varchar(50) NOT NULL,

    password varchar(50) NOT NULL);

    方法一:

mysql> use mysql;           ###进入mysql数据库
Reading table information for completion of table and column names
You can turn off this feature to get a quicker startup with -A

Database changed
mysql> show tables;         ###查看mysql数据库中包含的表
+---------------------------+
| Tables_in_mysql           |
+---------------------------+
| columns_priv              |
| db                        |
| engine_cost               |
| event                     |
| func                      |

​ 方法二:

mysql> show tables from mysql;
+---------------------------+
| Tables_in_mysql           |
+---------------------------+
| columns_priv              |
| db                        |
| engine_cost               |
| event                     |
| func                      |
| general_log               |

2.3查看表的结构(字段)

方法一

USE 数据库名;

DESCRIBE 表名

方法二

DESCRIBE[数据库名.]表名;

#DESCRIBE可缩写成DESC

mysql> use mysql;     #进入mysql库
Database changed
mysql> desc user;     #查看mysql库中的user表的结构
+------------------------+-----------------------------------+------+-----+-----------------------+-------+
| Field                  | Type                              | Null | Key | Default               | Extra |
+------------------------+-----------------------------------+------+-----+-----------------------+-------+
| Host                   | char(60)                          | NO   | PRI |                       |       |
| User                   | char(32)                          | NO   | PRI |                       |       |
| Select_priv            | enum('N','Y')                     | NO   |     | N                     |       |

mysql> desc mysql.user;   #在mysql库外查看mysql库中的user表的表结构
+------------------------+-----------------------------------+------+-----+-----------------------+-------+
| Field                  | Type                              | Null | Key | Default               | Extra |
+------------------------+-----------------------------------+------+-----+-----------------------+-------+
| Host                   | char(60)                          | NO   | PRI |                       |       |
| User                   | char(32)                          | NO   | PRI |                       |       |

3、SQL语句

SQL语句用于维护管理数据库,包括数据查询、数据更新、访问控制、对象管理等功能。

3.1SQL语句分类:

语句 代表的意思
DDL 数据定义语言,用于创建数据库对象,如库、表、索引等(create )
DML 数据操纵语言,用于对表中的数据进行管理(insert drop delete update )
DQL 数据查询语言,用于从数据表中查找符合条件的数据记录(select )
DCL 数据控制语言,用于设置或者更改数据库用户或角色权限(grant )

3.2创建及删除数据库和表

3.2.1创建新的数据库create

CREATE DATABASE 数据库名;

mysql> create database bwl1998;     #创建一个自定义的数据库
Query OK, 1 row affected (0.00 sec)

mysql> show databases;              #查看发现已经存在
+--------------------+
| Database           |
+--------------------+
| information_schema |
| bbs                |
| bwl1998            |
| kxy                |
| mysql              |
| performance_schema |
| sys                |
+--------------------+
7 rows in set (0.00 sec)

3.2.2创建新的表create

CREATE TABLE 表名 (字段1 数据类型,字段2 数据类型[,…][,PRIMARY KEY (主键名)]);

#主键一般选择能代表唯一性的字段不允许取空值(NULL),一个表只能有一个主键。

例如:

CREATE TABLE my (id int NOT NULL,name char(10) NOT NULL,score decimal (5,2),passwd char(48) DEFAULT ‘’,PRIMARY KEY (id));

mysql> use bwl1998;     #进入库
Database changed
mysql> create table bwl (id int,name char(10) not null,age int,sex char(2),score deecimal (5,2));    
                        #创建 名叫bwl的表,并插入字段
Query OK, 0 rows affected (0.01 sec)
mysql> show tables;    #查看库中的表
+-------------------+
| Tables_in_bwl1998 |
+-------------------+
| bwl               |
+-------------------+
1 row in set (0.00 sec)

mysql> desc bwl;      #查看表内容
+-------+--------------+------+-----+---------+-------+
| Field | Type         | Null | Key | Default | Extra |
+-------+--------------+------+-----+---------+-------+
| id    | int(11)      | YES  |     | NULL    |       |
| name  | char(10)     | NO   |     | NULL    |       |
| age   | int(11)      | YES  |     | NULL    |       |
| sex   | char(2)      | YES  |     | NULL    |       |
| score | decimal(5,2) | YES  |     | NULL    |       |
+-------+--------------+------+-----+---------+-------+
5 rows in set (0.01 sec)

3.2.3删除指定的数据表drop
  1. #如不用USE进入库中,则需加上数据库名
  2. DROP TABLE [数据库名.]表名;
  3. #在库中的话 直接DROP TABLE 表名;
3.2.4删除指定的数据库drop

DROP DATABASE 数据库名;

4、管理表中的数据记录

4.1向数据表中插入新的数据记录insert

  1. 方法一
  2. insert into 表名(字段1,字段2[,…]) values(字段1的值,字段2的值,…);
  3. 方法二
  4. insert into 表名 values(字段1的值,字段2的值,…);

例如:

#指定全部字段加入值
insert into my(id,name,age,sex,score) values(1,‘小明’,18,‘男’,30.5);
#不指定字段为表中字段插入所有值
insert into my values (3,‘小红’,17,‘女’,60);
#指定个别字段添加值
insert into my(name,age,sex,score) values(‘小强’,18,‘男’,31.5);
#如果此处不指定name那么会报错,因为name设为not null,name字段不能为空
方法一:

mysql> insert into bwl(id,name,age,sex,score) values(1,'康康',18,'女',59);
Query OK, 1 row affected (0.01 sec)
#插入一条记录 指定ID为1 name为康康 age为18 sex为女 score为59
mysql> insert into bwl(id,name,age,sex,score) values(2,'颖颖',20,'女',80);
Query OK, 1 row affected (0.00 sec)
#插入一条记录 指定ID为2 name为颖颖 age为20 sex为女 score为80
mysql> mysql> select * from bwl;    #查看bwl表中的所有记录
+------+--------+------+------+-------+
| id   | name   | age  | sex  | score |
+------+--------+------+------+-------+
|    1 | 康康   |   18 || 59.00 |     #score为decimal(5,2)的类型小数点后最多两位,少于两位自动补全。多余两位四舍                                            五入到两位。整数部分三位报错。
|    2 | 颖颖   |   20 || 80.00 |
+------+--------+------+------+-------+
2 rows in set (0.00 sec)

方法二:

mysql> insert into bwl values (3,'雯雯',19,'女',60); #不指定字段 按照创建表时结构顺序插入值
Query OK, 1 row affected (0.00 sec)

mysql> select * from bwl;
+------+--------+------+------+-------+
| id   | name   | age  | sex  | score |
+------+--------+------+------+-------+
|    1 | 康康   |   18 || 59.00 |
|    2 | 颖颖   |   20 || 80.00 |
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值