mysql具体意思(学习用)
语法:mysql.exe -h主机地址 -P服务器监听端口 -u用户名 -p密码
示例:
mysql.exe -h127.0.0.1 -P3306 -uroot -p
具体:
mysql.exe(软件名称) -h127.0.0.1(主机地址) -P(大写)3306(服务器监听端口 在mysql.exe软件中可见) -uroot(用户名:root(超级管理员)) -p(密码 有就写没有就不写)
简写:mysql -uroot
具体:mysql(软件名称) {【-h127.0.0.1(主机地址) -P(大写)3306(服务器监听端口 在mysql.exe软件中可见)】如果没有具体修改数值可用默认即可不写} -uroot(用户名:root(超级管理员)) -p(密码 有就写没有就不写)
如果有密码的简写:mysql -uroot -p
退出服务器连接(必须要加分号)
quit;
查看命令符:
查看数据库指令:SHOW(大写) ******(数据库名称);
查看数据表指令:SHOW(大写) tables(数据表);显示所有的数据表
查看数据表内部内容的指令:SELECT(选择) *(全部行与列) FORM music(数据表名);
进入命令符:
进入指定的数据库:
use 数据库名称
进入数据表
desc 数据表名称
删除数据库
删除数据库指令:
DROP(删除) DATABASE(数据库) ****(数据库);
创建命令符:
创建数据库指令:
CREATE(创建) DATABASE(数据库) *****(数据库名称) CHARSET UTF8(编码字符 如果数据库中有中文就必须有编码字符);
创建数据表
语法:CREATE TABLE 数据名(字段名 数据类型 [约束类型][,…])CHARSET UTF8
插入数据:
语法:INSERT INTO 数据表名 VALUES(数值);
示例:insert into music(数据表名) values(数值1,“字符串”,数值2)
数据类型:
一.数值类型(整数,小数)
1.整数类型:数值是固定的
(1).TINYINT 存储范围:无符号位:0~255
TINYINT 微整形,占一个字节,范围是-128~127
(2).SMALLINT 存储范围:无符号位:0~65535
SMALLINT 小整形,占两个字节,范围是-32768~32767
(3).INT 存储范围:无符号位:0~4294967295
INT 整形,占四个字节,范围是-2147483648~2147483647
(4).BIGYINT 存储范围:无符号位:0~2^64-1(只能使用BIGYINT可以存储手机号)
BIGYINT 大整形,占八个字节,范围是-132~132-1
2.浮点类型(近似值)(生活中的小数)[IEEE]
(1).FLOAT[M,D] 单精度浮点数 M代表的是总有效位数 D代表的是小数位数 FLOAT(6,3) 123.456
(2).DOUBLE[M,D] 双精度浮点数 M代表的是总有效位数 D代表的是小数位数
3.定点类型(精确值)
(1).DECIMAL[M,D] 保存货币信息 M代表的是总有效位数 D代表是的小数位数
4.布尔类型
(1).BOOLEAN 保存只有两个值的数据,通常为性别等判断,其中有两个值,分别是true和false(true和false为关键字,不能加引号)
5.日期时间类型
(1).date 日期型 ‘2030-03-28’
(2).time 时间型 ‘14:31:20’
(3).datetime 日期时间型 ‘2030-03-28 14:31:20’
6.字符串类型 都用于信息文本的存储(用户名 文章 聊天信息)
(1).CHAR(M) 固定长度的字符串(定长字符,最长有255的长度)
具体:CHAR(20) 代表可以存20个字符,就算只存储了10个,系统也会补全后面的所有字符
示例:CHAR(20) 代表可以存20个字符,就算只存储了10个,系统也会补全后面的10个字符
(2).VARCHAR(M) 可变长度的字符串(变长字符,最长有65535的长度)
具体:VARCHAR(10) 代表存多少字符就是多少字符,系统不会补充
示例:VARCHAR(10) 代表存了5个字符就是5个字符,系统不会补充后面剩余的5个字符
(3).TEXT(M) 可变长度的字符串(变长字符) 存储长度:2^32个字符
列约束
mysql可以对插入的值进行验证,只有通过验证才允许插入,例如:编号不允许重复,性别只能是男或者女
1.主键约束
primary key:声明了主键约束的列,不允许插入重复的值(一个表中只能有一个主键约束,加在编号列上会加快数据的查询速度)
主键约束的特点:主键约束的列禁止插入null,并且不允许重复
2.非空约束
not null:声明了非空约束的列,是禁止插入null,在唯一约束中null是不对等的,可以在唯一约束中插入多个null;
3.唯一约束
unique:生成唯一约束的列,不允许插入重复的值
4.默认值约束
(1).设置默认值:使用关键词default,为设置默认值
– 创建一个数据表
c
reate table news(
nid int primary key auto_increment,
title varchar(64) not null default '未知标题'
);
(2).使用默认值:那个需要默认值,直接写default关键字
– 为数据表赋值
insert into news values(null,default(在设置默认值是写的值),'来源1','2020-10-20 14:31:31','详情1',10);
5.检查约束
chek:用户可以指定约束条件,chek(判断条件)
mysql不支持检查约束,后期是由js来完成验证(不支持的原因是:会严重影响运行速度)
check(score>=0 && score<=100)
6.外键约束
声明了外键约束的列,插入的值必须在另一个表中出现过才行;目的是为了让两个表建立关联
外键约束的列的列类型要与另一个表的主键列的列类型要保持一致
使用方法:
foreign key(要关联的数据名称) references category(另一个表的关联数据名称)
*
*自增列
**
auto_increment:自动增长,声明了自增列,在插入的时候只需要赋值为null,将会获取最大值然后加1插入,只能给主键上加自增列
**
修改指定数据
**
修改数据表为student,将其name数据改为CC和score数据改为10,如果id等于1
UPDATE student(数据表名) set name(需要修改的列名称)=“CC”(修改的值),score(需要修改的列名称)=10(修改的值) where id=1(修改条件);
删除数据
删除数据表名为student的id为1的哪一行全部删除
delete from student(数据表明名) where id=1(删除的条件);
脚本模式的使用方法
运行(提交)脚本的方法
mysql -uroot > 文件路径(可以直接将文件拖拽到小于号后,路径自动生成 或 复制路径)
常用的SQL命令
1.丢弃数据库,如果它存在的话
DROP DATABASE IF EXISTS 数据库名称;
2.创建一个新的数据库
CREATE DATABASE 数据库名称
3.进入创建的数据库
USE 数据库名称;
4.创建数据表
语法:CREATE TABLE 数据名(字段名 数据类型 [约束类型][,…])CHARSET UTF8
5.插入数据:(即增)
语法:INSERT INTO 数据表名 VALUES(数值);
示例:insert into music(数据表名) values(数值1,“字符串”,数值2)
6.查看命令符:(即查)
i.查看数据库指令:
SHOW(大写) ******(数据库名称);
ii.查看数据表指令:
SHOW(大写) tables(数据表);显示所有的数据表
iii.查看数据表内部内容的指令:
SELECT(选择) *(全部行与列) FROM music(数据表名);
iiii.查看特定的列
select (需要查询列的名称,可以是多个,多个之间使用逗号,隔开) from (需要查询的数据表);
7修改指定数据(即改)
修改数据表为student,将其name数据改为CC和score数据改为10,如果id等于1
UPDATE student(数据表名) set name(需要修改的列名称)=“CC”(修改的值),score(需要修改的列名称)=10(修改的值) where id=1(修改条件);
8删除数据(即删)
删除数据表名为student的id为1的哪一行全部删除
delete from student(数据表明名) where id=1(删除的条件);
9.中文乱码
(1).确保脚本文件的编码为utf-8
i.客户端连接服务器端使用的编码为UTF-8(在mysql中utf-8的写法为utf8)
set names utf8;
ii.创建新数据库,设置村粗字符的编码为UTF-8
create database hospital charset=utf8;
(2).在命令行下有乱码情况
i.先退出交互模式:quit;
ii.将命令行的编码手动改为utf-8
chcp 65001(结尾没分号,65001是utf-8的编码)
(非商用,转载表明出处)