学习MySQL数据库也有一段时间了,操作上还是不太熟练,在此记录一下,以便后期忘记了也可以查找核对。新手上路,请多多包涵。
安装环境:腾讯云 CentOS 7.4 64位
MySQL版本:5.7.20
操作工具:Xshell 5
具体操作参考我上一篇文章
https://blog.csdn.net/m0_38131049/article/details/79865079
使用以下命令登录
mysql -uroot -p
查看MySQL中有多少数据库
show databases;
为防止字符乱码最好是规定好字符集,一般设置为utf8
mysql> create database mybatis default character set utf8; //创建一个名为mybatis的数据库
mysql> show variables like "%char%";
其中
character_set_client为客户端编码方式;
character_set_connection为建立连接使用的编码;
character_set_database为数据库的编码;
character_set_results为结果集的编码;
character_set_server为数据库服务器的编码;
只要保证以上采用的编码方式一样,就不会出现乱码问题
mysql> alter database mybatis character set gbk;
mysql> use mybatis; //use 数据库名
//创建tb-user表
mysql> CREATE TABLE tb_user (
-> id INT PRIMARY KEY auto_increment,#主键 整形 自增长
-> username VARCHAR ( 20 ),#用户名
-> PASSWORD VARCHAR ( 32 ),#密码
-> address VARCHAR ( 100 ) #住址
-> ) ENGINE=InnoDB DEFAULT CHARSET=utf8;
其中,mysql中两种数据库引擎
ENGINE=MyISAM
ENGINE=InnoDB
mysql> show tables;
mysql> show create table tb_user;
mysql> alter table tb_user character set gbk;
//alter table 表名 rename 新表名;
mysql> alter table tb_user rename tb_user1;
mysql> rename table tbl_name to new_tbl_name [,tbl_name2 TO new_tbl_namew]……
讲解:可以多表更改名称
mysql> desc tb_user;
//具体操作语句:更改数据表tb_user,修改PASSWORD列 位于address之后
mysql> alter table tb_user modify PASSWORD varchar(50) not null after address;
//语句的语法:修改数据库表tb_user中的PASSWORD列为password,并放在username后面
mysql> alter table tb_user change PASSWORD password varchar(32) NULL after username;
//ALTER TABLE table_name ADD column_name datatype
mysql> alter table tb_user add column email varchar(32);
mysql> alter table tb_user drop column email;
mysql> insert into tb_user(id,username,password,address) values (null,"张三","1234","江西省南昌市");
update tb_user set password ="1357" where id = 11;
update tb_user set password ="13579",address = "江西省高安市" where id = 11;
//同一条数据里的多个字段用“,”隔开
delete from tb_user where id = 14;
select * from tb_user; //查找数据库表中所有的数据
select * from tb_user where username = "张骞"; //按照条件进行查找
创建另一个表tb_order,在表中增加模拟数据
一个表中的 FOREIGN KEY 指向另一个表中的 PRIMARY KEY。
在实例中tb_order表中的user_id指向tb_user表中的id。
tb_user表中的”id”列是tb_user表中的PRIMARY KEY
tb_order表中的“user_id”是tb_order表中的FOREIGN KEY
CREATE TABLE `tb_order` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`user_id` int(11) DEFAULT NULL,
`shipping_name` varchar(50) DEFAULT NULL,
`status` int(11) DEFAULT NULL,
PRIMARY KEY (`id`)
CONSTRAINT [外键名] FOREIGN KEY (user_id)
REFERENCES tb_user(Id)
) ENGINE=InnoDB AUTO_INCREMENT=10 DEFAULT CHARSET=utf8
ALTER TABLE tb_order
ADD FOREIGN KEY (user_id)
REFERENCES tb_user(id)
//如果需要命名 FOREIGN KEY 约束,以及为多个列定义 FOREIGN KEY 约束
ALTER TABLE tb_order
ADD CONSTRAINT [外键名]
FOREIGN KEY (user_id)
REFERENCES tb_user(id)
ALTER TABLE tb_order
DROP FOREIGN KEY [外键名]
https://www.cnblogs.com/shootercheng/p/5836657.html
https://blog.csdn.net/bobo89455100/article/details/72922087
http://www.w3school.com.cn/sql/sql_foreignkey.asp