使用命令行窗口连接MYSQL数据库[示意图]:
1.mysql -h主机名-P端口-u用户名-p密码
2登录前,保证服务启动
启动mysql数据库的常用方式:[Dos命令]
1.服务方式启动(界面)
2. net stop mysql服务名
3. net start mysql服务名
连接sql的指令:
连接到Mysql服务(Mysql数据库)的指令mysql -h主机IP-P端口-u用户名-p密码
注意:(1)-p密码不要有空格
(2)-p后面没有写密码,回车会要求输入密码(hsp)
(3)如果没有写-h主机,默认就是本机
(4)如果没有写-P端口,默认就是3306
表的一行称之为一条记录->在java程序中,一行记录往往使用对象表示
SQL语句分类:
DDL:数据定义语句[create表,库...]
DML:数据操作语句[增加insert,修改update,删除delete]
DQL:数据查询语句[select l
DCL:数据控制语句[管理数据库,比如用户权限grand授予 ,revoke撤销 ]
创建数据库
CREATE DATABASE[IF NOT EXISTS] db_name
[create_specification [ ,create_specification] ...]
create_specification:
[DEFAULTCHARACTER SET charset_name
[DEFAULT]COLLATE collation_name
1.CHARACTER SET:指定数据库采用的字符集,如果不指定字符集,默认utf8
2.COLLATE:指定数据库字符集的校对规则(常用的utf8_bin区分大小写
、utf8_general_ci不区分大小写]注意默认是utf8_general_ci)
查看、删除数据库
显示数据库语句: SHOW DATABASES
显示数据库创建语句: SHOW CREATE DATABASE db_name
数据库删除语句: DROP DATABASE [IF EXISTS] db_name
备份恢复数据库
- 备份数据库(注意:在DOS执行)命令行
mysqldump -u用户名-p-B数据库1数据库2数据库n >文件名.sql
- 恢复数据库(注意:进入MySQL命令行再执行)
Source文件名.sql
备份恢复数据库的表
备份库的表:
.mysqldump -u用户名-p数操库表1表2表n > d:\I文件名.sql
创建表
CREATE TABLE table_name
(
field1 datatype,
field2 datatype,
field3 datatype
)character set字符集 collate校对规则 engine存储引擎
field:指定列名 datatype:指定列类型(字段类型)
character set :如不指定则为所在数据库字符集
collate:如不指定则为所在数据库校对规则
engine:引擎
Mysql常用数据类型(列类型)
分类 数据类型 说明 |
数值 BIT(M) 位类型。M指定位数,默认值1,范围1-64数值 类型 TINYINT [UNSIGNED]占1个字节 带符号的范围是-128到127。无符号0到255。默任有符号 SMALLINT [UNSIGNED]2个字节 带符号是负的2^15到2^15-1 ,无符号0到2^16-1 MEDIUMINT[UNSIGNED]3个字节 带符号是负的2^23到2^23-1 ,无符号0到2^24-1 INT [UNSIGNED]4个字节 带符号是负的2^31到2^31-1 BIGINT [UNSIGNED]8个字节 带符号是负的2^63到2^63-1,无符号0到2^64 -1 FLOAT [UNSIGNED] 占用空间4个字节 DOUBLE [UNSIGNED] 表示比float精度更大的小数,占用空间8个字节 DECIMAL(M,D) [UNSIGNED] 定点数M指定长度,D表示小数点的位数, |
文本 CHAR(size) char(20) 固定长度字符串 最大255 二进制 VARCHAR(size) varchar(20) 可变长度字符串0~65535[即:2^16-1] 类型 BLOB LONGBLOB 二进制数据BLOB 0~2^16-1 LONGBLOB 0~2^32-1 TEXT LONGTEXT 文本Text 0~2^16 LONGTEXT 0~2-32 |
时间 DATE/DATETIME/TimeStamp 日期类型(YYYY-MM-DD)(YYYY-MM-DD HH:MM:SS), TimeStamp表示时间戳,它可用于自动记录insert、update操作的时间 日期 |
Mysql常用数据类型
数值型(整数)的基本使用
注意:在能够满足需求的情况下,尽量选择占用空间小的类型
数值型(bit)的使用
1.基本使用
mysql> create table t02 (num bit(8));
mysql>insert into t02 (1,3);
mysql> insert into t02 values(2, 65);
2.细节说明bit.sql
.bit字段显示时,按照位的方式显示..
查询的时候仍然可以用使用添加的数值
如果一个值只有0、1可以考虑使用bit(1),可以节约空间位类型。
M指定位数,默认值1,范围1-64
·使用不多.
数值型(小数)的基本使用
1.FLOAT/DOUBLE [UNSIGNED]
Float单精度精度,Double双精度.
2. DECIMAL[M,D] [UNSIGNED]
·可以支持更加精确的小数位。M是小数位数(精度)的总数,D是小数点(标度)后面的位数。
·如果D是0,则值没有小数点或分数部分。M最大65。D最大是30。如果D被省略,默认是0。如果M被省略,默认是10。
·建议:如果希望小数的精度高,推荐使用decimal
字符串的基本使用
CHAR(size)
固定长度字符串最大255字符
VARCHAR(size)
可变长度字符串最大65532字节
【utf8编码最大21844字符1-3个字节用于记录大小】
注意细节:
1.细节 charVarcharDetail.sql
char(4)//这个4表示字符数(最大255),不是字节数,不管是中文还是字母都是放四个,按字符计算.
varchar(4)//这个4表示字符数,不管是字母还是中文都以定义好的表的编码来存放数据.
不管是中文还是英文字母,都是最多存放4个,是按照字符来存放的.
2.细节
char(4)是定长(固定的大小),就是说,即使你插入'aa',也会占用分配的4个字符.
varchar(4)是变长,就是说,如果你插入了'aa',实际占用空间大小并不是4个字符,而是按照实际占用空间来分配(varchar本身还需要占用1-3个字节来记录存放内容长度)
L(实际数据大小)+(1-3)字节
3.细节
什么时候使用char,叶么时候使用varchar
- 如果数据是定长,推荐使用char,比如md5的密码,邮编,手机号,身份证号码等.char(32)
- 如果一个字段的长度是不确定,我们使用varchar,比如留言,文章
查询速度:char > varchar
4.细节
在存放文本时,也可以使用Text 数据类型.可以将TEXT列视为VARCAR列,
注意Text不能有默认值.大小0-2^16字节如果希望存放更多字符,可以选择
MEDIUMTEXT 0-2^24或者LONGTEXT 0~2^32
日期类型的基本使用
CREATE TABLE birthday6
( t1 DATE, t2 DATETIME,
t3 TIMESTAMP NOT NULL DEFAULT
CURRENT_TIMESTAMP ON UPDATE
CURRENT_TIMESTAMP ) ; timestamp时间戳
mysql>INSERT INTO birthday (t1,t2)
VALUES(2022-11-11',2022-11-1110:10:10');
日期类型的细节说明
TimeStamp在Insert和update时,自动更新datetime.sql
修改表
添加列 使用ALTER TABLE语句追加,修改,或删除列的语法.
ALTER TABLE tablename
ADD ( column datatype [DEFAULT expr]
[ , column datatype] . .. )
修改列 ALTER TABLE tablename
MODIFY ( column datatype [DEFAULT expr]
[ , column datatype] . ..) ;
删除列 ALTER TABLE tablename
DROP ( column) ;
查看表的结构: desc表名;
修改表名:Rename table 表名to新表名
修改表字符集:alter table 表名character set字符集;