1.MySQL基础学习

1.MySQL基础学习

 create table school (
    -> id int primary key auto_increment,
    -> name varchar(10) not null
    -> )engine=innodb;

 * 5.链接数据库报错 ERROR 2013 (HY000): Lost connection to MySQL server during query
 *  解决:set GLOBAL interactive_timeout=2880000; set GLOBAL wait_timeout=2880000; 两者都要设置
 *
 * 6.创建一个负责表
 * mysql> create table stu (
    -> id int auto_increment primary key comment 'primary key',
    -> name varchar(20) not null comment '姓名',
    -> `add` varchar(50) not null default '地址不详' comment '地址',
    -> score int comment '成绩,可以为空'
    -> )engine=myisam;
Query OK, 0 rows affected (0.02 sec)
 *
 * 7.mysql 数据库引擎分为:myisam和innodb
 *  myisam:查询速度快 容易产生碎片 不能约束数据 对应三个文件 frm存储的是表结构, myd 存储的是表数据 myi存储的是表数据的索引
 *  innodb:以前没有myisam快,现在好多了,推荐innodb,不产生碎片,可以约束数据 对应一个文件, 数据存放在ibd中,结构存放在frm中,如果数据过大ibd会是ibd1,ibd2
 *  推荐使用:innodb
 *
 * 8.显示创建库的语句
 *  1. show create database name(名字);
 *
 * 9.修改数据库,(只能修改数据库选项,也就是字符编码)注意:在MySQL中utf字符编码中没有横岗- 就是utf8
 *  1.alter database name(名字) charset=utf8;
 *
 * 10.创建表 create table name (
 *  `字段名` 数据类型 [null | not null] [default] [auto_increment] [primary key] [comment]
 *  `字段名` 数据类型 ...
 * )[engine=存储类型] [charset=字符编码];
 *  1. null not null 是否为空
 *  2. default 默认值
 *  3. auto_increment 是否自动增长
 *  4. primary key 是否是主键 (一个表只能有一个主键,主键可以是一个或者是组合键)
 *  5. comment 描述
 *  6. 注意带[]都是可有可无
 *
 * 11.显示所有的表   show tables;
 *
 * 12.查看表结构 desc[ribe] name; (name是表名)
 *
 * 13.显示创建表的语句
 *  1.show create table school;
 *  2.show create table school \G; // 规格化,个人认为不好看
 *
 * 14.复制表
 *  1.create table newname select * from oldname;   // 不能复制表的键,只能赋值表的数据(不能复制表的主键)
 *  2.create table newname like oldname             // 只能复制表结构,不能复制表数据
 *
 * 15.删除表
 *  1.drop table name;
 *  2.如果存在就删除 drop table if exists name;
 *  3.一次性删除多个表 drop table name,nam1,name2,name3
 *
 * 16.修改表
 * 增加字段
 *  1.添加字段  alter table name(表的名字) add sex char(1);
 *  2.添加字段在name字段前添加  alter table name(表的名字) add sex char(1) after name;
 *  2.在前面添加   alter table school add age int first;
 * 删除字段
 *  1. alter table name(表名字) drop name(字段名字);
 * 修改字段(改名)
 *  1.alter table name(表名字) change name(原字段名) name(新字段名) 数据类型
 * 修改字段(不改名,改属性)
 *  1.alter table name(表名) modify sex varchar(5) default '地址不详';
 *  2.alter table userinfo modify id int primary key auto_increment;
 * 修改表的属性
 *  1.alter table school engine=myisam; // 修改引擎 引擎分为 innodb和myisam
 * 修改表的名字
 *  1.alter table school rename to school1;
 * 将表移动到其他数据库
 *  1.alter table name rename to test(数据库名字).stu; (移动之后那么原数据库会删除== 移动不能复制)(注意:主键不能复制,有数据)
 *
 * 17.表增加数据
 *  1.insert into name(表名)values('aa');
 *  2.insert into userinfo (name) values('田田');
 * 插入多条数据
 *  1.insert into name(表名) values(null,'aa'),(null,'bb');
 * 注意:null是插入null default是插入默认值
 *
 * 18.更新数据
 *  1.update name(表名) set name(字段名)=value [where 条件]; // 更新一条
 *  2.update userinfo set name='dd',sex='男' where id= 20;  // 更新多条
 *
 * 19.查询表数据
 *  1.select * from name(表名); 查询所有字段
 *  2.select id from userinfo;
 *
 * 20.删除数据(把当前一行的数据给删除了)
 *  1.delete from name(表名) where 条件 // delete from userinfo  sex='男';
 *  2.删除表所有数据
 *
 * 21.显示客户端返回和提交的数据
 *  1.show variables like '%chara%';
 *
 * 22.更改客户端指令的编码
 *  1.set character_set_client=gbk;
 *  2.可以通过set names一次性设置
 * */

你可能感兴趣的:(sql学习,mysql)