mysql 数据库基本操作
1、创建五张表
– user 表:后台用户表
 – product 表:产品表
 – account 表:客户账户表
 – product_account 表 : 客户购买表
 – customer 表 : 客户表
2、创建表 SQL 语句:
注意:下面 SQL 语句是直接在控制台创建表
 即:WIN+R --> cmd --> mysql -uroot -p密码)
mysql> create database webtest;
mysql> use webtest;	
mysql> create table user (uid int primary key auto_increment,username varchar(20),password varchar(20),nickname varchar(20));
Query OK, 0 rows affected (0.76 sec)	

3、插入数据
insert into user values (null,‘tom’,‘123’,‘张三’);
 insert into user values (null,‘lisi’,‘123’,‘李四’);
 insert into user values (null,‘wangwu’,‘123’,‘王五’);
 insert into user values (null,‘zhaoliu’,‘123’,‘赵六’);
 insert into user values (null,‘zhouqi’,‘123’,‘周七’);

4、创建表 – 图形界面工具 SQLyong – 执行 SQL 查询 语句:
下面 SQL 语句是在 SQLyog ULtimate - MySQL GUI(v12.09-64bit)创建
 注意:id 等两边不是单引号,而 Tab 上面符号。
 (图形界面 Navicat SQLyog 等软件,连接 mysql 数据库,密码加密方式不同)
 需要先登录 mysql 数据库,通过下面的语句修改用户的密码方式和重置密码
mysql> ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY '12311';
select User,Host from mysql.user;
才能通过图形界面 Navicat SQLLyog 等软件,连接 mysql 数据库
— 创建 p2p 数据库: 
 mysql> create database p2p;
— 使用 p2p 数据库:
 mysql> use p2p;
— 创建 user 数据表:
 create table user (
 id int(11) not null auto_increment,
 username varchar(20) default null,
 password varchar(20) default null,
 primary key (id)
 )ENGINE=INNODB AUTO_INCREMENT=2 DEFAULT CHARSET=utf8;
— 创建 product 数据表: 
 CREATE TABLE product (
 id INT(11) NOT NULL AUTO_INCREMENT,
 proNum VARCHAR(20) DEFAULT NULL,
 proName VARCHAR(20) DEFAULT NULL,
 proLimit INT(11) DEFAULT NULL,
 annualized DOUBLE DEFAULT NULL,
 releaseDate TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
 PRIMARY KEY (id)
 ) ENGINE=INNODB AUTO_INCREMENT=10 DEFAULT CHARSET=utf8;
— 创建 customer 数据表:
 create table customer (
 id int(11) not null auto_increment,
 c_name varchar(20) default null,
 email varchar(50) default null,
 email_status int(11) default null,
 password varchar(20) default null, 
 primary key (id)
 ) engine=InnoDB auto_increment=10 default charset=utf8;
— 创建 account 数据表: 
 create table account (
 id int(11) not null auto_increment,
 total double default null,
 balance double default null,
 interest double default null,
 c_id int(11) default null, 
 primary key (id),
 key c_id (c_id),
 constraint account_ibfk_1 foreign key (c_id) references customer (id)
 ) engine=InnoDB auto_increment=2 default charset=utf8;
— 创建 product_account 数据表:
 create table product_account (
 id int(11) not null auto_increment,
 pa_num varchar(20) default null,
 pa_date timestamp not null default current_timestamp on update current_timestamp,
 c_id int(11) default null,
 p_id int(11) default null,
 primary key (id),
 key c_id (c_id),
 key p_id (p_id),
 constraint product_account_ibfk_1 foreign key (c_id) references customer (id),
 constraint product_account_ibfk_2 foreign key (p_id) references product (id)
 ) engine=InnoDB default charset=utf8;
5、向 user 表插入数据:
mysql>  insert into user values (null,'tom','123');
6、查询 user 表数据:
mysql>   select * from user;

7、其他操作:
--- 清空 user 表数据:
truncate user;

--- 给某一张表添加一个列
ALTER TABLE `user` ADD `username` TEXT NOT NULL;	
--- 例如
alter table user add money Float(11) NULL default 6;--- 建表时 给某列添加默认值
create table tablename (columnname datatype default defaultvalue);--- 已建表后修改某表
alter table tablename alter column columnname set default defaultvalue;--- 给 user 表的 username 添加唯一约束
Alter table user add unique(username);--- 更改 app_activity 表中 digest 的字段,允许为空
ALTER TABLE app_activity MODIFY digest VARCHAR(255) null;--- 删除某一字段
ALTER TABLE mytable DROP 字段名;--- 修改列的类型
alter table 表名称 change 字段名称 字段名称 字段类型 [是否允许非空];
如: ALTER TABLE product CHANGE releaseDate releaseDate TIMESTAMP NULL;--- 更改表名
rename table 旧表名 to 新表名;--- 添加 utf8 编码库,删除一个数据库
CREATE DATABASE `test` DEFAULT CHARACTER SET utf8 COLLATE utf8_general_ci;
DROP database test;--- 删除一个索引
alter table 表名 drop index 索引列的名字;--- 查看表的字段信息:
desc 表名;--- 查看表的所有信息:
show create table 表名;--- 添加主键约束:
alter table 表名 add constraint 主键 (形如:PK_表名) primary key 表名(主键字段);--- 添加外键约束:
alter table 从表 add constraint 外键(形如:FK_从表_主表) foreign ey 从表(外键字段) references 主表(主键字段);--- 删除主键约束:
alter table 表名 drop primary key;--- 删除外键约束:
alter table 表名 drop foreign key 外键(区分大小写);--- 删除唯一约束(username该列上有一个唯一约束,app_user为表名)	:
drop index username on app_user;