Day01-Mysql
mysql 8.0 数据库的安装
1)解压mysql文件,打开管理员命令窗口 输入 " mysqld --initialize --console "
2) 得到一个临时密码,并将其复制一下
3)执行 “ mysqld -install ” 安装mysql
4) 再执行 " net start mysql ",启动mysql服务
5)输入“ mysql -u root -p ” 这时会要求你输入密码,把刚才复制的临时密码输入即可登录
6) 登录后进行修改密码 “ alter user ‘root’@'localhost' identified by ‘新密码’ ” 即修改密码成功
7) quit 退出mysql,再用新密码重新登录即可
mysql基本语句操作:(所有语句以 ;作为结束)
1)show databases; 查看该数据库中的数据库
2)create database 库名;创建一个新的数据库
3) use 库名; 切换到指定的数据库
4)show tables; 查看该数据库中的表
5)在该数据库下创建一个表 create table 表名(
列名1,属性,约束条件,
列名2,属性,约束条件
);
6) desc 表名; 查看表结构
7)插入数据: insert into 表名(列名1,列名2) values(值1,值2);
8)查询数据: select 列名1,列名2 from 表名 ;
select * from 表名;查出所有列的信息
9)修改数据:
update 表名 set 列名=‘修改值’; 修改该列的所有值
update 表名 set 列名 = ‘ 修改值 ’ where 列名 = ‘ 值 ’; 只修改符合指定条件的值
10) 删除数据
(1)delete from 表名;删除该表中的所有数据,但保留表的结构
(2)delete from 表名 where 列名=‘值’;根据条件删除指定的数据
(3)drop table 表名; 删除表,并且将该表的结构都删除
(4)drop database 库名; 将整个库都删除
数据库中的元素的数据类型:
1)整数类型:
int -2^31 ~ 2^31-1 四个字节
tinyint 一个字节
smallint 两个字节
bigint 八个字节
2)小数类型(浮点类型):会失去精度
float : 单精度
double: 双精度
3)定数类型:(小数部分不会丢失,但占空间大)
decimal(p,s) p: 有效数字的长度, s:小数点后的位数
例: decimal(10, 2)
12345678.77 ok
123456789.44 存不下
12345678.456 小数部分变为46
4)字符串类型:
char(长度): 定长字符串,最多不能超过指定长度,若小于指定长度,则系统会自动用 空格 补齐不足的位置
再查询时会去掉, 效率高,但占用空间多, 最大值255
varchar(长度):可变长度的字符串,存多长的字符串就是多长的字符串,不会占用额外的空间,但效率低,最大值65535
5)日期类型:
time: 时 分 秒 格式 hh:mm:ss
date: 年 月 日,一般按 yyyy-MM-dd 格式输入
datetime: 年月日,时分秒,格式: yyyy-MM-dd hh:mm:ss
timestamp:时间戳,年月日 时分秒
now(): 获取当前系统时间的函数
****datetime 与 timestamp 的区别:
(1)datetime 时间范围较大(1000-1-1~9999-12-31)timestamp范围较小(1970-1-1~2038-1-19)
(2)在使用时,timestamp会随系统的时间进行同步更新,而datetime不会
6) 约束:(基本的)
(1) unique: 唯一的,被约束的元素不能存重复数据,一个表中可以有多个唯一约束
(2)not null : 非空的,被约束的元素录入数据时不能录入(空)null值
(3) primary key:主键: 非空且唯一 , 一个表只能有一个主键
(4)foreign key: 外键,检查两表的关系列是否合法, 被引用的列必须是唯一的
例: create table student(
sid int,
sname varchar(20) not null,
birthday date unique,
sex char(1),
cid int,
primary key(sid),
foreign key(cid) references class(cid) /* student中的cid取值必须引用class中的cid的值 */
);
7) 自动增长列: auto_incremet 主要用在给主键产生一个唯一值 ,
注意用了自增长列,就不要手动赋值了,否则会使用手动赋的值
例: create table course(
cid int primary key auto_increment, /*产生一个自动增长的值*/
cname varchar(10)
);
8) 默认值: dafault '默认值'
例: create table person(
id int primary key auto_increment,
cname varchar(10),
sex char(1) default '男',
lastmodify timestamp default current_timestamp on update current_timestamp
);
( -- default current_timestamp 插入数据时,采用当前时间作为默认值
-- on update current_timestamp 修改数据时,采用修改那个时刻的时间来更新这一列 )
数据库的数据导入与导出:
导入数据库文件
方式一: mysql > source 路径\sql文件的名称;
方式二: 在cmd窗口运行 mysql -uroot -p test3 < E:\school.sql
其中test3是数据库的名字
导出数据:
mysqldump -uroot -p test3 > a.sql 其中test3是数据库的名字