参考:刘道成的mysql视频
(此文章只用于自己之后复习)
理论知识
1、表-->库-->mysql数据库服务器。
2、mysql是数据库服务器,navcat,cmd的都是客户端。
3、连接服务器:mysql -h localhost -u UserName -p Password(无分号结尾),
如果不写-h默认连localhost。
4、information_schema数据库是MySQL系统自带的数据库,它提供了数据库元数据的访问方式。
PERFORMANCE_SCHEMA数据库,主要用于收集数据库服务器性能参数。
mysql数据库存放mysql的信息,好比你登录数据库的帐号密码都在mysql库中的user表中。
所以以上三数据库不可以动!!!
5、mysql不能更改数据库的名字,一些客户端工具能做到是他们先复制内容到新名字的数据库,然后删了原来的数据库而达到的。!!!!但是表名是可以更改的。
6、语句打错了,可以用\c退语句。注意\。
7、
数值型
——整型(类如int(D))
整型
比如:alter table student add id int(5) unsigned zerofill not null default 0;
unsigned :无符号,影响存储范围。
M:代表宽度,在zerofill时候才有意义。
zerofill:用0填充,如果某一列是zerofill,那么默认unsigned。
not null default 0:设置默认值,一般数值为0,字符串为"";
(M设置为1,依旧可以输入35这样的数,它对数据无影响)
——小数型
浮点型(M,D)——float(M,D)
定点型(M,D)——decimal(M,D)
M:精度,总位数(不包含点)
D:标度(小数位)
(float(6,2)——>-9999.99-9999.99
float(6,2) unsigned ——>0-9999.99
区别整型)
小数点超位数会四舍五入,但是不同于我们以往的四舍五入。
(此处可百度下,反正我现在是是知道的,如果你以后忘了......那就百度百度)
定点比浮点更精确
字符型
char:定长char(M)
varchar:变长varchar(M)
M代表宽度,即可容纳的字符数
用varchar,若存的字符数为N,N<M则实际占N个字符(多出1-2个字节,用来标志字符长度)varchar利用率永远小于100,char可能能达到100
char不够M个字符用空格补,读取的时候会把尾部空格去掉,所以如果原来内容后面就有空格,就会丢失。
速度:定长快一些。
char与varchar
日期型(要加双引号)
——年--->year
范围:1901-2155
如果输入两位:00-69表示2000-2069
如果输入两位:70-99表示1970-1999
——年-月-日--->date
典型格式:1992-08-12
范围:1000-01-01~9999-12-31
——09:00:00--->time
典型格式:hh:mm:ss
范围:-838:59:59~838:59:59
——年-月-日 hh:mm:ss --->datetime
典型格式:1980-05-12 12:34:24
范围:1000-01-01 00:00:00~9999-12-31 23:59:59
一般default:1000-01-01 00:00:00
——时间戳(用int):1970-01-01 00:00:00到当前的秒数,一般注册时间商品发布时间都是用时间戳表示而非datetime,因为dt不容易计算。
8、还有enum型,set型,不符合关系型数据库设计理解,而且内存用的也没有少很多,所以不多用,有需要以后自己查吧。
9、charset 字符集
engine存储引擎
auto_increment 值自动增长
primary key 主键值不可能重复
代码
1、基础语句
1.show databases;
2.create database DBname;
3.use DBname;
4.show tables;
2、增删改查
//增
//创建表(举例,tablename = student)之简单型
create table student
(id int,
name char(5),
phone_number varchar(10),
age int
);
//创建表(举例,tablename = student)之复杂型(解释见理论9)
create table stydent(
id int primary key auto_increment,
name char(3),
age tinyint unsigned not null default 0,
email varchar(30) not null default "",
tel char(11) not null default "",
intro varchar(1000) not null default "",
salary decimal(7,2) not null default 1800.68,
riqi date not null default "2012-01-01"
)charset utf8;
//多行插入,单行应该就会了哈
insert into student
(id,name,phone_number,age)
values
(1,'Mike','87492345','20'),
(2,'Jack','87498765','30');
//增加列
alter table student add id int(5) unsigned zerofill not null default 0;
//删
drop database DBname;
drop table tablename;
//不加where导致全删
delete from student
where id = 2;
//改
rename table oldName to newName;
);
update student
set
id = 2,
name = "Bill"
where name = "Mike";//类似的还有 where 1>0;where 1>2;
//查
desc tablename;(查看表结构,其实就是description)
select * from tablename;
网友评论