时间:2021-07-01 10:21:17 帮助过:21人阅读
MySQL规范
MySQL有三大类数据类型, 分别为数字、日期\时间、字符串, 这三大类中又更细致的划分了许多子类型:
这里不能详细对这些类型进行介绍了, 篇幅可能会很长, 详细介绍参见: 《MySQL数据类型》 :http://www.cnblogs.com/zbseoag/archive/2013/03/19/2970004.html
当 MySQL 服务已经运行时, 我们可以通过MySQL自带的客户端工具登录到MySQL数据库中, 首先打开命令提示符, 输入以下格式的命名:
mysql -h 主机名 -u 用户名 -p 密码;
输入 exit 或 quit 退出登录。
显示当前时间
select now();
显示数据库版本
select version();
create database 数据库名 [其他选项];
例如我们需要创建一个名为python01 的数据库, 在命令行下执行以下命令:
create database python01 charset=utf8; # charset=utf8 是指定数据库支持的编码类型,默认是拉丁文,注意不是utf-8
注意: MySQL语句以分号(;)作为语句的结束
查看数据库
show databases; # 注意加s
查看数据库的创建语句
show create database python01;
修改数据库的字符类型
alter database python01 charset=utf8;
删除数据库
drop databse python01;
使用数据库
use python01;
查看当前使用的数据库
select database();
数据表的操作
创建数据表
create table 数据表名字 (字段 类型 约束, ....)
eg:
create table xxxx (id int, name varchar(30));
查看数据表
show tables;
查看数据表详细信息
desc xxxx;
加约束
create table xxx (id int primary Key not null auto_increment, name varchar(30));
为了方便写的时候观看,可以拆成多行
create table xxx ( id int primary Key not null auto_increment, name varchar(30)
);
小练习题
create table student( id int unsigned not null primary Key auto_increment, name varchar(20), age tinyint unsigned default 0, hight decimal(5, 2), # 有5个数字,其中两个是小数 gender enum("男", "女", "中性", "保密") default "保密", # 枚举 cls_id int unsigned );
往表中插入数据
insert into student value(0, "老王", 18, 180.88, "男", 1);
查看表中所有列
select * from student;
数据表的增删改查
增加字段
alter table student add birthday datetime;
修改字段,不重命名版
alter table student modify birthday date; # birthday字段不变,改变类型
修改字段,重命名版
alter table student change birthday birth date default "1990-01-01";
删除字段
alter table student drop hight;
相应的值也会被删除
删除数据表
drop table xxx;
最常用的部分,数据的增删改查
向表中插入数据
insert into classes value(0, "菜鸟班"); # classes的id被设定为自动增加,所以插入数据时id部分随便我们怎么写都行,都会自动改变按应该的顺序增加
eg:
insert into classes value(null, "菜鸟班");
insert into classes value(default, "菜鸟班");
# 枚举中的下标从1开始 1----------》 “男”
insert into student values(default, "小李飞刀“, 20, 1, 1, "1990-02-01");
部分插入
insert student(name, gender) values("小乔", 2);
多行插入
insert into student(name, gender) values("大乔", 2),("貂蝉", 2);
更新数据
update student set gender=2 where id=1; # 不指定id将全部修改
定条件查询
select * from student where name="小乔";
select * from student where id > 3;
select name, gender from student where id=2;
select name as 姓名, gender as 性别 from student where id=2;
删除数据
delect from student where xxx;
逻辑删除,用一个字段表示这条信息不在使用
给student添加is_delete字段,bit类型
alter table student add is_delete bit default 0;
创建新表时如果不指定存储引擎 , 那么系统就会使用默认存储引擎 , MySQL 5.5 之前的默认存储引擎是MyISAM
, 5.5 之后改为了InnoDB
查看当前数据库支持的存储引擎类型;
SHOW ENGINES;
1.MyISAM 和 InnoDB的适用场景
MyISAM适合:(1)做很多count 的计算;(2)插入不频繁,查询非常频繁;(3)没有事务。
InnoDB适合:(1)可靠性要求比较高,或者要求事务;(2)表更新和查询都相当的频繁,并且表锁定的机会比较大的情况。
2.MyISAM 和 InnoDB的区别
1)MyISAM类型不支持事务处理等高级处理,而InnoDB类型支持
2)myisam表不支持外键
3)在执行数据库写入的操作(insert,update,delete)的时候,myisam表会锁表,而innodb表会锁行
4)当你的数据库有大量的写入、更新操作而查询比较少或者数据完整性要求比较高的时候就选择innodb表。当你的数据库主要以查询为主,相比较而言更新和写 入比较少,并且业务方面数据完整性要求不那么严格,就选择mysiam表。因为mysiam表的查询操作效率和速度都比innodb要快
MySQL基础(一)
标签:image pytho 退出 运行 小数 exit nod 详细 tle