@数据库的基础常用命令使用详解
文章目录
数据库的基础命令详解
一、数据库库相关操作
二、数据库表相关操作
三、数据库字段
四、数据库命令详解
1、数据库的相关库(database)的操作(增、删、改、查)
MySQL查看数据库(SHOW DATABASES语句)
MySQL创建数据库(CREATE DATABASE语句)
MySQL修改数据库:ALTER DATABASE用法简介
MySQL删除数据库(DROP DATABASE语句)
MySQL选择数据库(MySQL USE语句)
##############(增)##############
#格式:
create database 库名称;
create database 数据库名称 charset 编码方式;
create database 数据库名称 charset 编码方式 collate 排序规则;
#示列:
create database hzl charset utf8mb4;
create database hzl collate utf8mb4_unicode_ci;
create database hzl
#案列:
MariaDB [(none)]> create database hzl; #创建库hzl
Query OK, 1 row affected (0.00 sec)
##############(删)##############
#格式:
drop database 库名称;
#示列:
drop database hzl;
#案列:
MariaDB [(none)]> drop database hzl; #表示删除库hzl
Query OK, 0 rows affected (0.00 sec)
###############(改)##############
#格式:
alter database 库名称 charset 编码方式; #修改编码方式
#示列:
alter database hzl charset gbk;
#案列:
MariaDB [(none)]> alter database hzl charset gbk; #更改编码方式(一般不用)
Query OK, 1 row affected (0.00 sec)
###############(查)##############
#格式:
show databases; #查看所有库
show database 库名称; #查看指定库
#示列:
show create database hzl; #查看指定的库
#案列:
MariaDB [(none)]> show create database hzl; #查看hzl库结构
+----------+-------------------------------------------------------------+
| Database | Create Database |
+----------+-------------------------------------------------------------+
| hzl | CREATE DATABASE `hzl` /*!40100 DEFAULT CHARACTER SET gbk */ |
+----------+-------------------------------------------------------------+
1 row in set (0.00 sec)
##############(选择切换库)##############
#格式:
use 数据库名称;
#示列:
use hzl; #选择数据库进入
#案列:
MariaDB [(none)]> use hzl; #切换库位置进入指定库
Database changed
MariaDB [hzl]>
#创建数据库
create database 数据库名称 charset 编码方式 collate 排序规则;
create database phpedu collate utf8mb4_unicode_ci;
#修改数据库
alter database db1 charset gbk;
#删除数据库
drop database phpedu;
#选择默认数据库
use phpedu;
#查看所以数据库
show databases;
#查看建库语句
show create database phpedu;
#查看状态
status
MariaDB [hzl]> status; #查看库的详细信息
--------------
mysql Ver 15.1 Distrib 5.5.68-MariaDB, for Linux (x86_64) using readline 5.1
Connection id: 10
Current database: hzl
Current user: root@localhost
......
....
#查看当前数据库
select database();
MariaDB [hzl]> select database();
+------------+
| database() |
+------------+
| hzl |
+------------+
1 row in set (0.00 sec)
#查看登录用户
select user();
MariaDB [hzl]> select user();
+----------------+
| user() |
+----------------+
| root@localhost |
+----------------+
1 row in set (0.00 sec)
#连接数据库时就选中当前数据库myblog,直接指定进入的库
mysql -uroot -proot myblog;
2、数据库的相关表(table)的操作(增、删、改、查)
- CREATE TABLE 创建表
- ALTER TABLE 修改表
- DROP TABLE 删除表
##############(增)##############
#格式:
create table 表名称(字段1 数据类型,字段2 数据类型…限制条件);
#示列:
create table h(id int,name varchar(16)); #创建增加表单,至少有一个字段和数据类型,最后一个字段已经最后一个数据类型结束后不加,逗号
MariaDB [(none)]> create table hzl.h(id int,name varchar(16));
Query OK, 0 rows affected (0.00 sec)
##############(删)##############
#格式:
drop table 表名称;
#示列:
drop table h;
#案列
MariaDB [hzl]> drop table h; #删除表h
Query OK, 0 rows affected (0.00 sec)
truncate table 表名称;
truncate table h; #清空表里面数据
#案列:
MariaDB [hzl]> truncate table h; #清空表h
Query OK, 0 rows affected (0.01 sec)
##############(改)##############
#格式:
alter table 表名称(字段1 数据类型,字段2 数据类型…限制条件);
rename table 表名称 to 新名称 #改表名称
alter table 表名 charset 新编码 #改表的编码
#示列:
alter table t1 modify name varchar(20); #修改指定的字段
#案列:
MariaDB [hzl]> alter table h modify name varchar(20);
Query OK, 0 rows affected (0.03 sec)
Records: 0 Duplicates: 0 Warnings: 0
##############(查)##############
#格式:
show tables; #查看库中所有表
show create table h; #查看指定的表
desc h; #查看库中指定的表
#案列:
MariaDB [hzl]> desc h;
+-------+-------------+------+-----+---------+-------+
| Field | Type | Null | Key | Default | Extra |
+-------+-------------+------+-----+---------+-------+
| id | int(11) | YES | | NULL | |
| name | varchar(16) | YES | | NULL | |
+-------+-------------+------+-----+---------+-------+
2 rows in set (0.00 sec)
######(删除数据库表)
alter table table_name drop index index_name #删除表中的索引
drop table table_name #删除表
drop database database_name #删除数据库
truncate table table_name #删除表内的数据
#######(查询数据库表)
desc 表名称; #查看数据表结构
show create table 表名称; #查看建表语句
show tables; #查看库中有哪些表
3、数据库的相关表(记录)的操作(增、删、改、查)
#格式:
alter table 表名称 add 字段 字段数据类型 #添加字段
alter table 表名称 drop 字段 #删除字段
alter table 表名称 modify 字段 新的数据类型 #修改字段数据类型
alter table 表名称 change 旧字段名称 新字段 新字段数据类型 #替换字段
#################(增)#################
#格式:
insert db1.t1 values(1,"egon"),(2,"tom"),(3,"jack"); #添加表的字段数据
insert db1.t1(name,id) values("lili",4); #添加指定数据类型的的字段
insert db1.t1(id) values(5); #添加指定表的字段数据类型
#################(删)#################
#格式:
delete from 表名称 where 字段数据类型;
delete from db1.t1 where id=2; #只删除表中字段三的记录
#格式:
truncate 表名称;
truncate db1.t1; #清空表
delete from db1.t1; #清除表,一般不要这么做,直接清空表即可
#################(改)#################
#格式:
update db1.t1 set name="JACK" where id=3; #表示修改指定表下指定字段的数据类型
#################(查)#################
#格式:
select * from db1.t1; #表示查询所有的表记录
select id,name from db1.t1; #查询指定表字段数据类型
select id,name from db1.t1 where id=3; #查询指定表字段数据类型为3的
select id,name from db1.t1 where id<3; #查询指定表字段数据类型为小于3的
4、表的字段类型
MySQL提供了一组可以赋给表中各个列的数据类型,每个类型都强制数据满足为该数据类型预先确定的一组规则,例如大小、类型及格式。支持多种类型,大致可以分为三类:数值、日期/时间和字符串(字符类型)
1)日期和时间数据类型
#MySQL数据类型 含义
date 3字节,日期,格式:2014-09-18
time 3字节,时间,格式:08:42:30
datetime 8字节,日期时间,格式:2014-09-18 08:42:30
timestamp 4字节,自动存储记录修改的时间
year 1字节,年份
#timestamp与datetime:
datetime 的日期范围比较大,1000-01-01 00:00:00 ~ 9999-12-31 23:59:59 , timestamp 所占存储空间比较小,只是 datetime 的一半。
TIMESTAMP 用于表示 年月日 时分秒,但是记录的年份 比较短暂,1970-01-01 00:00:01 ~ 2038, TIMESTAMP列必须有默认值,默认值可以为“0000-00-00 00:00:00”,但不能为null。
TIMESTAMP 和时区相关,更能反映当前时间。当插入日期时,会先转换为本地时区后再存放;当查询日期时,会将日期转换为本地时区后再显示。所以不同时区的人看到的同一时间是 不一样的。
TIMESTAMP 的属性受 Mysql 版本和服务器 SQLMode 的影响较大。
如果记录的日期需要让不同时区的人使用,最好使用 TIMESTAMP。
一般建表时候,创建时间用datetime int ,更新时间用timestamp
2)数值数据类型
整型
#MySQL数据类型 含义(有符号)
tinyint 1字节,范围(-128~127)
smallint 2字节,范围(-32768~32767)
mediumint 3字节,范围(-8388608~8388607)
int 4字节,范围(-2147483648~2147483647)
bigint 8字节,范围(±9.22*10的18次方)
浮点型
#MySQL数据类型 含义
float(m, d) 4字节,单精度浮点型,m总个数,d小数位
double(m, d) 8字节,双精度浮点型,m总个数,d小数位
decimal(m, d) decimal是存储为字符串的浮点数
字符串数据类型
#MySQL数据类型 含义
char(n) 固定长度,最多255个字符
varchar(n) 可变长度,最多65535个字符
tinytext 可变长度,最多255个字符
text 可变长度,最多65535个字符
mediumtext 可变长度,最多2的24次方-1个字符
longtext 可变长度,最多2的32次方-1个字符
1> char(n)和varchar(n)中括号中n代表字符的个数,并不代表字节个数,所以当使用了中文的时候(UTF8)意味着可以插入m个中文,但是实际会占用m*3个字节。
2> 同时char和varchar最大的区别就在于char不管实际value都会占用n个字符的空间,而varchar只会占用实际字符应该占用的空间+1,并且实际空间+1<=n。
3> 超过char和varchar的n设置后,字符串会被截断。
4> char的上限为255字节,varchar的上限65535字节,text的上限为65535。
5> char在存储的时候会截断尾部的空格,varchar和text不会。
6> varchar会使用1-3个字节来存储长度,text不会。
5、创建数据库表结构
#名称 类型 约束条件 说明
user_id int(10) 不允许为空,无重复 用户标识,主键,自动递增
user_name varchar(20) 不允许为空,无重复 用户名,唯一索引
user_pwd varchar(60) 不允许为空 用户密码
user_sex tinyint(1) 默认值为0 用户性别 1男0女
create_time int(10) 不允许为空 注册时间,时间戳
update_time timestamp 不允许为空 修改时间
############(案列)##########
# 创建数据库
create database mydb;
# 选择当前数据库
use mydb;
## 创建用户表结构
create table `users`(
`user_id` int(10) not null auto_increment comment '用户ID' primary key,
`user_name` varchar(20) not null comment '用户名' unique key,
`user_pwd` varchar(60) not null comment '用户密码',
`user_sex` tinyint(1) comment '0男1女' default '0',
`create_time` int(10) not null,
`update_time` timestamp not null default current_timestamp() on update current_timestamp()
)ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;
本文来自博客园,作者:ଲ一笑奈&何,转载请注明原文链接:https://www.cnblogs.com/zeny/p/15121505.html