@数据库的基础常用命令使用详解

数据库的基础命令详解

一、数据库库相关操作

img

二、数据库表相关操作

img

三、数据库字段

img

四、数据库命令详解

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;
posted @ 2021-06-29 23:25  ଲ一笑奈&何  阅读(157)  评论(0编辑  收藏  举报