安装数据库之后,启动数据库
win+r 输入cmd 在dos窗口输入mysql -u root -p 回车输入密码
不建议-p后面直接输入密码 这样不安全
如果输入mysqld显示不是内部命令,那么我们需要配置一下环境变量,
当然上面是我故意输入错误的
配置环境变量如下:
右键我的电脑或者计算机 选择属性(也可以使用win+r 输入control 选择系统)
一次点击设置
找到mysql安装路径设置bin前一级,最好粘贴复制,书写容易出错 ok
点击bin你会发现bin目录里面会有一个mysql.exe文件是的,你也可以使用cd命令不断切换目录
也可以达到实现效果,不过久了你会烦的,相信
重写打开dos窗口 win+r 输入cmd 接着输入mysql -u root -p 回车输入密码
当然默认mysql安装已经给你配置好了,这里只是告诉你cmd输入mysql -u root -p怎么可以实现
进入数据库后,页面如上
操作数据库的语句:
查看数据库中有哪些数据库
查看数据库:show databases;
注意不能少了分号(英文状态下)
创建数据库:create database demo
删除数据库:drop database demo
修改数据库:alert database demo character set utf8 college utf8_bin
(注意只能修改字符编码,字符校对集) 创建库时候,自动创建默认码表
注意以上语句全是错误的,发现输入没有预期的效果 对了,少了结尾分号 注意
当前要使用那个数据库
use 库名; 如 use demo;
查看当前选择的数据库
select database();
显示创建的库的语法
show create database demo;
mysql中的数据类型
非黑体了解即可、记住粗体即可
一、数字型
整型()
TINYINT 1字节 byte
SMALLINT 2字节 short
MEDIUMINT 3字节
(常用)INT 4字节 int
BIGINT 8字节 long
浮点型
FLOAT 单精度4字节 float
**DOUBLE 8字节 double 表示单价不进行计算使用
*DECIMAL 没有精度损失 参与运算使用
二、字符串类型
注意: 字符串类型要使用单引号包裹.
短字符串类型
CHAR/VARCHAR (最大长度255字节)
char定长字符串.varchar表示变长字符串.
结论: 开发中varchar用的最多。 char只在表示固定长度的枚举中使用。例如 :性别(用01,02表示)
长字符串类型(流类型)
*TEXT/CLOB 保存文本(字符流) --> 当要保存的内容超过255字节时使用. java中的writer 字符
BLOB 保存字节(字节流) --> 开发中用不到 java中的stream 字节
区别:
text:只能存储字符数据.
BLOB:可以存储字符和多媒体信息(图片 声音 图像)
三、日期和时间类型
date 只记录日期 2015-01-14
time 只记录时间 11:36:25
year 只记录年 2015
datatime 又记录日期 又记录 时间 2015-01-14 11:36:25
**timestamp 同上 2015-01-14 11:36:25
问题: datatime 和 timestamp 区别?
区别在于插入的时候,如果插入datatime类型时,没有 传值,那么该类型默认值就是null;
如果插入timestamp类型时,没有 传值,那么该类型默认值就是当前时间;
表的操作
// 与创建表相关的语句
CREATE TABLE table_name (
field1 datatype 约束/主键约束 auto_increment,
field2 datatype 约束,
field3 datatype 约束
)[character set 字符集 collate 校对规则]
// 创建表
create table t_user(
id int,
name varchar(20),
sal double(4,3),
birthday datetime,
hiredate timestamp
);
varchar最好指定长度
整型一般不指定.
2.查看当前库中有哪些表
show tables;
3.查看表的结构
desc 表名; description
desc t_user;
4.删除表
drop table 表名;
drop table t_user;
5.添加一列
alter table 表名 add 列名 类型;
alter table t_user add photo blob;
6.修改列的类型
alter table 表名 modify 列名 类型;
alter table t_user modify photo varchar(20);
7.修改列的名称
alter table 表名 change 旧列名 新列名 数据类型;
将 photo这一列 改名为 image
alter table t_user change photo image varchar(20);
8.删除某列
alter table 表名 drop 列名;
alter table t_user drop image;
9.修改表的名称
rename table 旧表名 to 新名;
rename table t_user to user;
10(用的极少)修改表的字符集. (如果创建表时不指定,默认使用数据库的字符集)
alter table 表名 character set 字符集 collate 校对集;
alter table t_user character set utf8 collate utf8_bin;
列的约束 (掌握)
保证数据的完整性的.
1.非空约束(not null) 指定非空约束的列, 在插入记录时 必须包含值.
2.唯一约束(unique) 该列的内容在表中. 值是唯一的.
3.主键约束(primary key) 非空约束和唯一约束). 一个表中只能指定一个主键约束列.
主键约束 , 可以理解为 非空+唯一.
注意: 并且一张表中只能有一个主键约束.
约束体现数据库的完整性.
是不是已经快疯啦呢?
图形化工具:native、sqlyoy
创建带有约束的表
create table t_user2(
id int primary key auto_increament, -- 员工编号
name varchar(10) not null, -- 员工姓名
loginname varchar(10) not null unique, -- 登陆名称
password varchar(20) not null, -- 密码
age int(3) not null, -- 年龄
birthday datetime not null, -- 生日
hiredate timestamp not null -- 入职日期
);
主键自动增长
注意:
1.前提某个表的主键是数字. 我们可以将该主键设置为自增.
2.使用主键自增可能会造成主键的断层。
3.mysql,sqlserver,sqllite这三个数据库具有该功能.
4.主键自增只能给主键约束的列加。
自增就是 每次插入记录时不需要指定值. 该字段自己维护自己的值.
维护方式就是每次加1;
create table t_user(
id int primary key auto_increment,
password varchar(30) not null,
age int not null,
birthday datetime not null,
hiredate timestamp not null,
number int unique
);