什么是数据库?
数据库:Database,简称DB
通俗的讲,就是数据的仓库,专门存储数据的
MySQL的连接方式
用命令行客户端连接本地mysql
mysql -uroot –p
或者
mysql –hlocalhost –P3306 –uroot -p
若出现不是内部命令字样需要配置环境变量
MySQL数据类型:
整数类型:
TINYINT:非常小的整数
SMALLINT:小整数
MEDIUMINT:中整数
INT, INTEGER:整数
BIGINT:大整数
浮点小数
float:4个字节
double:8个字节
使用float和double时:
(1)float或double
(2)float(M,D),double(M,D):M表是总位数,D表示精度,即小数点几位
例如:double(5,2)表示的数据范围。[-999.99,999.99],如果超过这个范围会报错。 [999.99]
日期时间类型
date:只能表示日期
time:表示时间
datetime:表示日期和时间
year:表示年
timestamp:表示日期和时间
datatime和timestamp:
(1)timestamp实际存储的毫秒值,显示时,根据毫秒值算出来的一个本地化的日期时间,因为存储的是毫秒值,所以在比较和计算时,效率比较高。
(2)datatime:就是存储日期时间
MySQL的运算符
算数运算符
1、加 :select 1+2;
2、减:select 1-2;
3、乘:select 2*3;
4、除:select 2/3
5、商:select 10 DIV 4;
6、取余:select 10 MOD 4;
比较运算符
逻辑运算符
位运算符
1、按位与 select 3&5; //1与1得1,0与0得0 3&2
2、按位或 select 3|5; //对应的二进制位有一个或两个为1,则该位的运算结果为1,否则就为0
3、按位异或 select 3^5; //相同的两个数异或得0,不同的两个数异或得1
4、按位取反 select ~18446744073709551612; //1取反后得0,0取反后得1
5、按位右移 select 3>>1; //m<<n 表示m的二进制数向右移动n位,左边补n个0
6、按位左移 select 3<<1; //m>>n 表示m的二进制数向左移动n位,右边补n个0
运算符优先级
索引
索引的分类:
主键索引(PRIMARY KEY)primary key
唯一索引(UNIQUE INDEX)unique index
常规索引(INDEX) index或者key
全文索引(FULLTEXT)不使用。假设大量的文本检索,可以考虑使用其他数据库产品
主键索引
1.建表的时候添加主键索引
create table test.t_stu(
sid int primary key,
sname varchar(20)
gender char(5)
);
2.创建表之后添加主键索引
alter table 【数据库名.】表名称 add primary key(字段名称)
alter table test.t_stu add primary key(sid);
3.删除主键索引
alter table 表名 drop primary key;
alter table product drop primary key;
语法: create unique index 唯一索引名称 on 表名(字段名)
案例:
create unique index pname_index on products(pname);
唯一索引
所用命令:UNIQUE INDEX
3.创建表的时候添加,唯一索引
create table mytable1(
id int not null,
username varchar(10) not null,
unique index username_index(username)
);
create table user(id int primary key,name varchar(20) not null,age int not null,unique index age_index(age));
4.删除唯一索引
alter table 表名 drop index 唯一索引名;
5.如何查看某表格的索引名
show index from 表名
常规索引 普通索引
1、作用: 快速定位特定的数据
注意:
index和key关键字都可设置常规索引
应加在查找条件的字段
不宜添加太多常规索引,影响数据的插入、删除和修改操作
2、建表后,直接创建常规索引
语法:CREATE INDEX 索引名称 ON 表名(字段名称);
CREATE INDEX 索引名称 ON table(column(length))
3、更新表结构的方式添加常规索引
ALTER TABLE 表名 ADD INDEX 索引名称(column(length))
4、创建表的时候同时创建常规索引
CREATE TABLE 表名(name VARCHAR(32) ,INDEX 索引名称(字段名称));
5、删除索引
DROP INDEX 常规索引名 ON 表名;
全文索引
1、全文索引是将存储在数据库中的文章或者句子等任意内容信息查找出来的索引。全文索引也是目前搜索引擎使用的一种关键技术。指定为fulltext
2、创建表的时候创建全文索引
create table cards( id int(11) auto_increment primary key not null, # auto_increment:自动生成属性 name varchar(50), number bigint(11), info varchar(50), FULLTEXT cards_number(name) #给name设置全文索引 );
3、通过alter添加全文索引 语法:ALTER TABLE 表名ADD FULLTEXT (列名); ALTER TABLE products ADD FULLTEXT (pname);
4、直接通过create index的方式 CREATE FULLTEXT INDEX ft_email_name ON products(name
)`
5、删除全文索引
DROP INDEX full_idx_name ON products;
6、使用 alter table的方式删除
ALTER TABLE products DROP INDEX full_idx_name;
约束
约束包括哪些
非空约束:not null
唯一性约束:uinque
主键约束:primary key(简称PK)
自增约束:auto_increment
外键约束:foreign key(简称FK)
检查约束:check(mysql不支持,oracle支持)。
外键约束
foreign key 简称:FK
外键约束经常和主键约束一起使用,用来确保数据的一致性 特点:
(1)一个表可以有很多个外键约束
(2)外键约束是需要一个表的两个字段或者两个表的两个字段之间建立外键约束
(3)外键名不能重复涉及到两张表:父表、子表 主表、副表
- 建表时添加外键 CREATE TABLE emp (id INT,NAME VARCHAR(10),FOREIGN KEY (需加外键的字段名) REFERENCES 需要关联表的名(关联字段名) -- 外键,关联部门表(部门表的主键)
- 建表后添加外键 alter table 需加外键的表 add constraint 外键名 foreign key(需加外键表的字段名) referencnes 关联表名(关联字段名);
- 删除外键 alter table ss_accesscode drop foreign key 外键约束名称;