文章目录
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查看数据库中包含的表
-
法一 :在库中查看表
-
USE 数据库名;
-
SHOW TABLES;
-
法二 :在库外查看表
-
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
- #如不用USE进入库中,则需加上数据库名
- DROP TABLE [数据库名.]表名;
- #在库中的话 直接DROP TABLE 表名;
3.2.4删除指定的数据库drop
DROP DATABASE 数据库名;
4、管理表中的数据记录
4.1向数据表中插入新的数据记录insert
- 方法一
- insert into 表名(字段1,字段2[,…]) values(字段1的值,字段2的值,…);
- 方法二
- 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 |