继续浏览精彩内容
慕课网APP
程序员的梦工厂
打开
继续
感谢您的支持,我会继续努力的
赞赏金额会直接到老师账户
将二维码发送给自己后长按识别
微信支付
支付宝支付

嵌入式狗的JAVA之路 MYSQL 1

慕移动7491742
关注TA
已关注
手记 12
粉丝 11
获赞 68

跳跃到了mysql~~~~

安装MSI
config exe 配置向导 standard配置即可

开启 关闭服务 net start/stop 服务名
登陆mysql可以用cmd命令窗口登陆,找到安装目录bin下右键在此打开命令窗口 输入 mysql.exe —P 端口 -h 地址 -u 帐号 -p
Win7下
启动mysql服务 net start 服务名
关闭mysql 服务 nte stop 服务名

mysql -uroot(用户名) -p123(密码) -P3306(端口) -h127.0.0.1(服务器名称)数据库连接成功
prompt \u@\h \d>
MySQL退出
·mysql > exit;
·mysql >quit;
·mysql >\q;
常用命令
1.清屏:cls
2.-V 输出版本信息并退出 --version
3.-u 用户名 --user=name (输入超级用户root,即-uroot)
4.-p 密码 --password=name
5.-P 端口号 --port=# (一般是输入mysql默认端口号3306,即-P3306,如果默认端口3306没有被修改过,-P的参数可以不加)
6.-h 服务器名称 --host=name (如果说要连接到本地的服务器,那么它的IP地址,或者说它的服务器名称就是127.0.0.1,这个地址被称为本地回环地址,即-h127.0.0.1,如果你确确实实连接的是本地服务器,那么-h的 参数也可以不加)
7.-D 打开指定数据库 --database=name
8.--delimiter=name 指定分隔符
9.--prompt=name 设置提示符

SELECT VERSION();显示版本
SELECT NOW();显示时间
SELECT USER();显示用户名
关键字、函数名大写
数据库、表、字段名称小写

创建数据库
CREATE {DATABASE|SCHERMA}[IF ONT EXISTS] db_name [DEFAULT] CHARACTER SET = charset_name
查看数据库
SHOW {DATABASES|SCHERMA}[LIKE 'pattern'|WHERE expr]
查看警告信息
SHOW WARNINGS;
查看数据库建立的信息
SHOW CREATE DATABASE db_name;
修改数据库
ALTER {DATABASE|SCHEMA}[db_name][DEFAULT] CHARACTER SET charset_name;
删除数据库
DROP {DATABASE|SCHEMA}[IF EXISTS] db_name;

数据类型 整型(范围由小到大) tinyint:1字节
smallint:2字节
mediumint:3字节
int:4字节
浮点型

FLOAT单精度浮点型,DOUBLE双精度浮点型,DOUBLE[(M,D)]例如7,2 总位数为7位,小数点后面的为两位。
blging:8字节

日期 日期时间类型 存储需求
year: 1
time: 3
date: 3
datetime:8
timestamp:4(时间戳)
字符
char定长类型(长度多了的用空格来代替)
varchar不定长类型
创建

USE 数据库名 <打开要创建表的数据库>
CREATE TABLE tb1( <在打开的数据库中创建表>
username VARCHAR(20), <表字段和类型>
age TINYINT UNSIGNED,
salary FLOATE(8,2) UNSIGNED
);
查看数据库:SHOW TABLES;显示的是当前的数据库列表
SHOW TABLES FROM mysql;显示的是mysql的列表

INSERT tb1 VALUES('Tom',25,7863.25) 插入
INSERT tb1(username,salary) VALUES('john',4500.69); 插入
SELECT * FROM tb1; 查找

空值和非空
NULL 和 NOT NULL
AUTO_INCREMENT
自动编号,且必须与主键使用,初始值为1 ,增量为1;
PRIMARY KEY
主键约束
主键,保证数据唯一性
只能存在一个主键
主键自动为空
UNIQUE KEY
唯一约束
唯一约束可以保证记录的唯一性
唯一约束的字段可以为空值(NULL)
每张数据表可以存在多个唯一约束
DEFAULT
默认值
当插入记录时,如果没有明确为字段赋值,则自动赋予默认值

外键约束
1.保证数据一致性,完整性;
2.实现一对一或一对多的关系;
3.外键约束的要求:
a.父表(子表参照的表)和子表(具有外键列的表)必须使用相同的存储引擎,而且禁止使用临时表;
b.数据表的存储引擎只能为INNODB;
c.外键列(加过FOREIGN KEY的列)和参照列(外键列参照的列)必须具有相似的数据类型,其中数字的长度、是否有符号位必须相同;而字符的长度可以不同;
d.外键列和参照列必须创建索引,如果外键列不存在索引的话,MySQL将自动创建索引(参照列没有索引,MySQL自动创建;外键列没有索引,MySQL不会创建)。

建表

USE 数据库名 <打开要创建表的数据库>
CREATE TABLE tb1( <在打开的数据库中创建表>
username VARCHAR(20), <表字段和类型>
age TINYINT UNSIGNED,
salary FLOATE(8,2) UNSIGNED
);
查看数据库:SHOW TABLES;显示的是当前的数据库列表
SHOW TABLES FROM mysql;显示的是mysql的列表
注:但是并没有改变当前数据库,只是显示了一次其他数据库的列表
可以用SELECT DATABASE();显示当前数据库。

查询表结构:show columns from 表名称;
插入记录:
INSERT INTO tb1 (字段名,字段名....可省略,省略后默认为所有字段赋值) VALUES('Tom',25,7863.25);

外键约束
1.保证数据一致性,完整性;
2.实现一对一或一对多的关系;
3.外键约束的要求:
a.父表(子表参照的表)和子表(具有外键列的表)必须使用相同的存储引擎,而且禁止使用临时表;
b.数据表的存储引擎只能为INNODB;
c.外键列(加过FOREIGN KEY的列)和参照列(外键列参照的列)必须具有相似的数据类型,其中数字的长度、是否有符号位必须相同;而字符的长度可以不同;
d.外键列和参照列必须创建索引,如果外键列不存在索引的话,MySQL将自动创建索引(参照列没有索引,MySQL自动创建;外键列没有索引,MySQL不会创建)。
外键约束参照操作

1.CASCADE:从父表删除或更新且自动删除或更新指标的匹配的行
2.SET NULL:从父表删除或更新行,并设置指标的外键列为NULL。如果使用该选项,必须保证值列表没有指定NOT NULL
3.RESTRICT:拒绝对父表的删除或更新操作
4.NO ACTION:标准SQL的关键字,在MySQL中与RESTRICT相同

分别在两张表插入记录,顺序为先父表再子表
INSERT provinces( pname) VALUES(‘A’);
INSERT provinces( pname) VALUES(‘B’);
INSERT provinces( pname) VALUES(‘C’);
SELECT FROM provinces;
INSERT users1( username,pid) VALUES(‘Tom’,3);
INSERT users1( username,pid) VALUES(‘John’,1);
INSERT users1( username,pid) VALUES(‘Rose’,3);
SELECT
FROM users1;
期间如果有插入记录错误,自动递增的编号已用,会跳过
DELETE FROM provinces WHERE id=3;
SELECT FROM provinces;
发现C 的那条记录不见了
SELECT
FROM users1;
发现Tom和Rose被删除了

对于一个列所创建的约束,称之为列级约束,而对于两个或两个以上的列所创建的约束,我们称之为表级约束,列级约束在使用的时候,既可以在列定义的时候声明,也可以在列定义以后声明,而表级的约束只能在列定义以后来声明,在实际开发中,用列级约束比较多,表级约束很少用,除此之外,在所有的约束中,并不是说每种约束都存在着表级或列级约束,其中,NOT NULL 非空约束,DEFAULT约束这两种约束就不存在表级约束,它们只有列级约束,而对于其他的三种,像主键,唯一,外键,它们都可以存在表级和列级约束。
[ 收起全文 ]

删除表:DROP TABLE tb1;
删除列:ALTER TABLE tb1_name DROP[COLUMN] col_name;
添加多列:ALTER TABLE tb1_name ADD[COLUMN] (col_name column_definition,...);
添加单列:ALTER TABLE tb!_name ADD[COLUMN] col_name column_definition [FIRST|AFTER col_name];
删除记录:DELETE FROM province WHERE id=3;
验证表中是否有相应的记录:SELECT * FROM province;
显示索引:SHOW INDEXES FROM province;SHOW INDEXES FROM province\G;(以网格呈现)
打开数据表test:USE test;
查看创建命令:SHOW CREATE TABLE province;
查看数据表结构:SHOW COLUMNS FROM tb3;
插入记录:INSERT tb1_name(age)VALUES (‘28’);
查看数据表列表:SHOW TABLES [FROM db_name] [LIKE 'pattern'|WHERE expr];
添加的单列将他至于那一列后面语句:after 后面跟要添加其下的列名
alter table users1 add 要添加的列名 varchar(32) not null after 列名;
将添加的单列位于所有列之前:first
alter table users1 add 要添加的列名和属性 first;

添加外键约束:ALTER TABLE users2 ADD FOREIGN KEY(pid) REFERENCES provinces (id);
添加默认约束:ALTER TABLE users2 ALTER age SET DEFAULT 15;
删除默认约束:ALTER TABLE users2 ALTER age DROP DEFAULT;
数据表的修改操作:无非就是添加列,删除列,添加约束,删除约束。用的是ALTER,而INSERT是对数据表添加插入记录用的。
删除唯一约束:ALTER TABLE table_name DROP INDEX 数据名;

修改列的位置(modify):alter table user2 modify id smallint unsigned not null first;

修改列的名称(change):alter table user2 changed pid p_id tinyint unsigned not null;
数据表更名:
方法一:alter table user2 rename user3;(user2变user3)
方法二:rename table user3 to user4(可为多张数据表更名)
尽量不要随意更改数据列和数据表的名字;

暂时到这边,学会增改删查~~

打开App,阅读手记
0人推荐
发表评论
随时随地看视频慕课网APP