php基础之mysql

mysql黑窗口命令

set names gbk 设定连接数据库的环境编码名(黑窗口中只有这个)

show databases 显示创建的数据库列表

drop database 数据库名    删除数据库

create database chenchen 创建数据库“chenchen”

create database chenche charset utf8

use 数据库名 使用数据库(进入数据库)

show tables 显示表

mysql备份和恢复

备份 mysqldump -h localhost -u root -p wp5 > f:/123.sql


恢复

mysql -h localhost -u root -p chenchen1 < f:/123.sql


创建表

修改表

    增加字段

    删除字段

    修改字段

  单行注释
 -- 注释内容(--后面带一个空格)
 /*
 注释内容
 */
 delimiter // 设定新的语句结束符
 大小写问题
 
------------------------------------------------------------------------------
-------------------------数据库定义语言 DDL-----------------------------
------------------------------------------------------------------------------


创建数据库
create database chenchen charset utf8 collation utf8_general_ci
显示数据库中的所有可用编码
show charset;
显示mysql中的所有可用排序规则(utf8_general_ci utf8_bin)
show collation
删除数据库
drop database if exists chenchen
修改数据库(字符编码)
alter database chenchen charset utf8 collation utf8_general_ci


显示所有数据库
show databases
显示一个数据库的创建语句
show create database chenchen
选择数据
use chenchen
--------------------------------------数据类型------------------------------------------------
数据(字段)类型:数字 字符型 时间型
数字 tinyint smallint mediumint int bigint float double decimal
日期时间 year timestamp time date datetime
字符串型 set enum blob text varchar char
常用字段类型  tinyint int float decimal timestamp date datetime set enum text varchar char
 tinyint 1个字节 8位 -128——127  八位一个字节
 int 4个字节 32位 
 bigint  8个字节 64位
整数类型字段的设定形式:类型名 [M] [unsigned] [zerofill] m:显示长度 unsigned:无符号数没有负数 zerofill:0填充 
create table tab_int(f1 int,f2 tinyint,f3 bigint);
create table tab_int2(f1 int unsigned,f2 tinyint zerofill,f3 bigint(10) zerofill);
insert into tab_int2 values(1,1,1);
float   单精度浮点型 4个字节存储数据,精度大约有6到7个有效数字位
double  双精度浮点型 8个字节存储数据,精度大约只有20个有效数字位
decimal (定点型)整数部分最长大概有65位,小数部分最长大概有30位,一般设置格式为 decimal(总位数,小数部分位数)
create table tab3(f1 float,f2 double,f3 decimal(10,2));
insert into tab3 values(1.28,100.9999,8888.012);
字符类型 (用单引号)
varchar 可变长度,必须定义长度(最多存储字符的个数),最大长度理论值 65535,实际最大值65533 gbk 65533/2 utf8 65533/3
char  定长字符串,使用时设定其长度,不设定默认长度为1,最大理论长度是255
enum  单选  enum("选项1","选项2","选项3"); 最多65533个选项 对应数字值 1.2.3.4.......65533
set   多选  set("选项1","选项2","选项3"); 最多64个选项  对应数字值 1 2 4 8 16
 enum,set写入数据时可以用字符串本身也可以用对应的数字。set可以用对应数字的和。
text 长文本类型
其它
binary 定长二进制字符串 varbinary 不定长二进制字符串 blob 二进制数据类型,存的仍然是二进制值,适用于存储图片、文件等
时间类型
datetime 日期时间
date     日期
time     时间
year     年
timestamp  时间戳(这个字段通常不用赋值)now()  md5()




---------------------表-------------------------


create table if not exists tab4(id bigint(20) auto_increment primary key,name varchar(8) ,age int(4) ,phone varchar(12));
 primary key 主键 用于唯一确定一行数据
 unique key  唯一不能重复
 not null 不能为空
 default "xxx" 默认值 
 comment 'xxxxxx'  字段说明
 


索引类型 
普通索引 
key (字段名)
就是一个索引而已,没有其它作用,只能加快查找速度。
唯一索引 u
nique key (字段名) 
是一个索引,而且可以设定其字段的值不能重复(唯一)
主键索引 
primary key (字段名)
是一个索引,而且还具有区分该表中的任何一行数据的作用(其实也是唯一性)它比唯一索引多一点功能,唯一索引可以为null,主键索引不可以为null。
全文索引 
fulltext 字段名
外键索引 
foreign key (字段名) references 其他表 (对应其它表中的字段名)

索引创建语法


create table if not exists tab_suoyin(
id int auto_increment,
user_name varchar(20),
user_email varchar(20),
primary key(id), -- 主键索引
unique key(user_name), -- 唯一索引
key(user_email) -- 索引
);

create table banji(
id int auto_increment primary key,
banji int(10) unique key,
banji_name varchar(10) comment '班级名称'
);


create table xuesheng(
id int auto_increment primary key,
banji_id int(10) comment '班级id',
xs_name varchar(10),
age tinyint,
foreign key (banji_id) references banji (banji)
);

约束


主键约束
primary key 字段名
唯一约束
unique key 字段名
外键约束
foreign key (字段名) references 其他表 (对应其它表中的字段名)
非空约束
not null
默认值约束
default 默认值
检查约束
check (age > 0 and age < 110) mysql无效


表选项:创建一个表的时候,对该表的整体设定


charset = 'utf8';
engine = 要使用的存储引擎(也叫表类型)
auto_increment = 1 设定当前表的自增长字段的初始值,默认值为1
comment = '该表的说明文字'

演示表选项


create table banji1(
id int auto_increment primary key,
banji int(10) unique key,
banji_name varchar(10) comment '班级名称'
)
charset = gbk,
auto_increment = 100,
engine = MyIsam,
comment = '说明'
;

修改表


重命名表:alter table 旧表名 rename to  新表名
添加新字段:alter table 表名 add [column] 新字段名 新字段类型 [字段属性列表]
修改字段(并可改名):alter table 表名 change [column] 旧字段名 新字段名 新字段类型 [新字段属性列表]
删除字段:alter table 表名 drop [column] 字段名
添加普通索引:alter table 表名 add key [索引名] (字段1,字段2,字段3)
添加唯一索引(约束):alter table 表名 add unique key [索引名] (字段1,字段2,字段3)
添加主键索引(约束):alter table 表名 add primary key [索引名] (字段1,字段2,字段3)

删除表


drop  table  [if  exists] 表名;


其他表的相关语句:


显示当前数据库中的所有表: show tables;
显示某表的结构: desc 表名; 或:describe 表名;
显示某表的创建语句:show create table 表名;
重命名表:rename table 旧表名 to 新表名;
从已有表复制表结构:create table [if not exists] 新表名 like 原表名
复制表 insert into 新表名 select * from 要复制的表名


-------------------------------------视图-----------------------------------------------------
视图
解释:视图是指计算机数据库中的视图,是一个虚拟表,其内容由查询定义。同真实的表一样,视图包含一系列带有名称的列和行数据。但是,视图并不在数据库中以存储的数据值集形式存在。行和列数据来自由定义视图的查询所引用的表,并且在引用视图时动态生成。视图像表一样支持增删改查。


创建视图 CREATE VIEW 视图名(列1,列2...) AS SELECT 列1,列2... FROM ...;
使用视图 当成表使用就好
修改视图 CREATE OR REPLACE VIEW 视图名 AS SELECT [...] FROM [...];
查看数据库已有视图 >SHOW TABLES [like...];(可以使用模糊查找)
查看视图详情 DESC 视图名或者SHOW FIELDS FROM 视图名
视图条件限制 [WITH CHECK OPTION]

创建视图


create view chenchen_view1(a1,a2) as select f1,f2 from tab3;


------------------------------------------------------------------------------
-------------------------数据库操作语言 DML-----------------------------
------------------------------------------------------------------------------
插入:
insert into 表名 (字段1,字段2,......) values(值1,值2,................);
replace [into] 表名 [(字段名1,字段名2,....)] values (值表达式1,值表达式2,....), (.....), ....;
insert [into] 表名 [(字段名1,字段名2,....)] select 字段名1,字段名2,.... from 其他表名;
insert [into] 表名 set 字段名1=值表达式1,字段名2=值表达式2



阅读更多
版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/chenchenweb/article/details/79946628
个人分类: php
想对作者说点什么? 我来说一句

没有更多推荐了,返回首页

关闭
关闭
关闭