目录
一.数据库基本操作
1.登录数据库
mysql -u root -p
2.查看数据库结构
show databases;
show databases\G
USE 数据库名;
show tables;
show tables in mysql;
DESCRIBE [数据库名.]表名;
可缩写成:DESC 表名;
3.常用的数据库类型
int 整型
float 单精度浮点 4字节32位
double 双精度浮点 8字节64位
char 固定长度的字符类型
varchar 可变长度的字符类型
text 文本
image 图片
decimal(5,2) 5个有效长度数字,小数点后面有2位
4.char和varchar的区别
(1).char类型的长度是固定的,varchar的长度是可变的。
这就表示,存储字符串'abc',使用char(10),表示存储的字符将占10个字节(包括7个空字符)
使用varchar(10),则表示只占3个字节,10是最大值,当存储的字符小于10时,按照实际的长度存储。
(2).char类型的效率比varchar的效率稍高
(3).varchar与varchar的区别
varchar是oracle开发的一个数据类型。
工业标准的varchar可以存储空字符串,oracle的varchar还可以存储NULL值,如果想要有向后兼容的能力建议使用varchar
(4).varchar比char节省空间,但是在效率上比char稍差些。既要获得效率即必须牺牲一点空间,这就是设计上的""以空间换时间""
varchar虽然比char节省空间,但是一个varchar列经常被修改,而且每次修改的数据长度不同,这会引起“行迁移的现象”,
而这造成的多余的I/O,是数据库设计中尽量避免的,在这种情况下使用char代替varchar会更好些
二.MySQL数据文件
MysQL数据库的数据文件存放在**/usr/local/mysql/data**目录下,每个数据库对应一个子目录,用于存储数据表文件。每个数据表对应为三个文件,扩展名分别为".frm"、“.MYD"和”.MYI”。
1、MYD文件
MYD文件是MyISAM存储引擎专用,存放MyISAM表的数据。每一个MyISAw表都会有一个"“.MYD"文件与之对应,同样存放于所属数据库的文件夹下,和”.frm"文件在一起。
2、MYI文件
“.MYI"文件也是专属于MyISAM存储引擎的,主要存放MyISAM表的索引相关信息。对于MyISAM4存储来说,可以被 cache 的内容主要就是来源于”.MYI"文件中。每一个MyISAM表对应一个".MYI”文件,存放于位置和".frm"以及".MYD”一样。
3、MyISAM存储引擎
MyISAM存储引擎的表在数据库中,每一个表都被存放为三个以表名命名的物理文件(frm,myd,myi)。每个表都有且仅有这样三个文件做为MyISAM
存储类型的表的存储,也就是说不管这个表有多少个索引,都是存放在同一个.MYI文件中。
另外还有".ibd"和 ibdata文件,这两种文件都是用来存放Innodb数据的,之所以有两种文件来存放Innodb的数据(包括索引),是因为Innodb的数据存储方式能够通过配置来决定是使用共享表空间存放存储数据,还是独享表空间存放存储数据。独享表空间存储方式使用".ibd"文件来存放数据,且每个表一个".ibd"文件,文件存放在和MyISAM数据相同的位置。如果选用共享存储表空间来存放数据,则会使用ibdata文件来存放,所有表共同使用一个(或者多个,可自行配置)ibdata文件。
三、SQL语句
SQL语言通常分为五类:
DDL(数据定义语言):create、alter、drop等;
DQL(数据查询语言):select等;
DML(数据操纵语言):insert、delete 、update等;
TCL(事务控制语言):commit、rollback等;
DCL(数据控制语言):grant、revoke等。
DDL(数据定义语言)
数据定义语言(Data Definition Language)简称DDL。是 SQL 语言集中负责数据结构定义与数据库对象定义的语言。
DDL用来创建数据库中的各种对象,创建、删除、修改表的结构,比如表、视图、索引、同义词、聚簇等。其主要功能是定义数据库对象,核心指令为create、drop、alter。
和DML相比,DML是修改数据库表中的数据,而 DDL 是修改数据中表的结构。
DQL(数据查询语言)
数据查询语言(Data Query Language)简称DQL。是SQL语言中,负责进行数据查询而不会对数据本身进行修改的语句,这是最基本的SQL语句。
DQL的核心指令为select。通常与关键字from、where、group by、having、order by等一起使用,组成查询语句。
DML(数据操纵语言)
数据操纵语言(Data Manipulation Language)简称DML。过它可以实现对数据库的基本操作,对数据库其中的对象和数据运行访问工作的语言。
DML的主要功能是访问数据,因此其语法都是以读写数据库为主。
DML的核心指令为insert、update、delete。
TCL(事务控制语言)
事务控制语言(Transaction Control Language)简称TCL。用于管理数据库中的事务。这些用于管理由 DML 语句所做的更改。它还允许将语句分组为逻辑事务。
TCL经常被用于快速原型开发、脚本编程、GUI和测试等方面。
TCL的核心指令为commit、rollback。
DCL(数据控制语言)
数据控制语言 (Data Control Language)简称DCL。是一种可对数据访问权进行控制的指令,它可以控制特定用户账户对数据表、查看表、预存程序、用户自定义函数等数据库对象的控制权。
DCL用来授予或回收访问数据库的某种特权,并控制数据库操纵事务发生的时间及效果,对数据库实行监视等。
DCL的核心指令为grant、revoke。
DDL数据定义语言
creat
drop
alter
1.创建新的数据库
CREATE DATABASE 数据库名;
2. 创建新的表
CREATE TABLE 表名 (字段1 数据类型,字段2 数据类型[,...][,PRIMARY KEY (主键名)]);
create table lnj11 (id int not null,name char(10) not null,sex sex char(1),primary key (id));
3.删除指定的数据表
use 数据库名
DROP TABLE 表名;
DROP TABLE [数据库名].表名;
4.删除指定的数据库
DROP DATABASE 数据库名;
DML数据操控语言
向数据表中插入新的数据记录
insert into nh (id,name) values(1,'lnj');
查询数据记录
SELECT 字段名1,字段名2[,...] FROM 表名 [WHERE 条件表达式];
例:select * from CLASS;
select name,score from CLASS where id=1;
修改、更新数据表中的数据记录
update nh set name='sb' where name='lnj';
在数据表中删除指定的数据记录
DELETE FROM 表名 [WHERE 条件表达式];
DQL数据查询语言
select name from nh;
DCL数据控制语言
ALTER TABLE 旧表名 RENAME 新表名;
扩展表结构(增加字段)
ALTER TABLE 表名 ADD address varchar(50) default '你猜';
修改字段(列)名,添加唯一键
ALTER TABLE 表名 CHANGE 旧列名 新列名 数据类型 [unique key];
删除字段
ALTER TABLE 表名 DROP 字段名;
if not exists 表示检测要创建的表是否已存在,如果不存在就继续创建
int(4) zerofill 表示若数值不满4位数,则前面用“0”填充,例0001
auto_increment 表示此字段为自增长字段,即每条记录自动递增1,默认从1开始递增;自增长字段数据不可以重复;自增长字段必须是主键;如添加的记录数据没有指定此字段的值且添加失败也会自动递增一次
unique key 表示此字段唯一键约束,此字段数据不可以重复;一张表中只能有一个主键, 但是一张表中可以有多个唯一键
not null 表示此字段不允许为NULL
create table if not exists lcdb(id int (4) zerofill primary key auto_increment,name varchar(10) not null,cardid int (18) not null unique keey,habby varchar(50));
insert into lcdb (id,name,cardid,habby) values (1,’yuzhen’,250,’蹦迪’);