mysql创建表

MySQL的库表详细操作

南楼画角 提交于 2019-12-17 03:37:16
一 库操作 1、创建数据库      1.1 语法       CREATE DATABASE 数据库名 charset utf8;      1.2 数据库命名规则       可以由字母、数字、下划线、@、#、$       区分大小写       唯一性       不能使用关键字如 create select       不能单独使用数字       最长128位 基本上跟python或者js的命名规则一样 2、数据库相关操作     也是一些基本操作,和我们之前说的差不多。 1 查看数据库 show databases; show create database db1; select database(); 2 选择数据库 USE 数据库名 3 删除数据库 DROP DATABASE 数据库名; 4 修改数据库 alter database db1 charset utf8;   关于库的内容,咱们就说这些吧,哈哈,有点少是吧,不是咱们的重点,来看下面的表操作~~~ 二 表操作 1、存储引擎     存储引擎即表类型,mysql根据不同的表类型会有不同的处理机制,关于存储引擎的介绍看我这篇博客: https://www.cnblogs.com/changxin7/p/11525457.html 2、表介绍     表相当于文件,表中的一条记录就相当于文件的一行内容

day36-多表查询

女生的网名这么多〃 提交于 2019-12-17 03:01:12
#建表 create table department( id int, name varchar(20) ); create table employee( id int primary key auto_increment, name varchar(20), sex enum('male','female') not null default 'male', age int, dep_id int ); #插入数据 insert into department values (200,'技术'), (201,'人力资源'), (202,'销售'), (203,'运营'); insert into employee(name,sex,age,dep_id) values ('egon','male',18,200), ('alex','female',48,201), ('wupeiqi','male',38,201), ('yuanhao','female',28,202), ('liwenzhou','male',18,200), ('jingliyang','female',18,204) ; #查看表结构和数据 mysql> desc department; +-------+-------------+------+-----+---------+-------+ |

MySQL数据库初识

拥有回忆 提交于 2019-12-16 22:52:51
一 数据库概述 1. 数据库???   什么是数据库呢?   先来看看百度怎么说的 数据库,简而言之可视为电子化的文件柜——存储电子文件的处所,用户可以对文件中的数据运行新增、截取、更新、删除等操作。 所谓“数据库”系以一定方式储存在一起、能予多个用户共享、具有尽可能小的冗余度、与应用程序彼此独立的数据集合。   百度的貌似不好理解啊,让我说啊,数据库是存储数据的地方,超哥,你这不是废话么?这位同学,你你你你你说的对,哈哈,存数据的地方是存在哪里呢,存在硬盘上,为什么不是存在内存里面,因为内存无法永久保存。之前我们存数据都是使用的文件,在一个word文档里面写一些羞羞的网址,然后保存,就存储到硬盘上了。有同学就会说了,超哥,我这通过文件不是也将数据保存上了吗?是的,没毛病,但是你想,通过文件来操作数据,效率是不是很低,首先打开关闭就比较慢,其次是我们操作起来也比较麻烦,对不对,如果我想记录一条关于我个人信息的数据,我使用文档来存,是不是很不友好,并且我们要查数据的时候,看图1:图1是一个word里面记录的信息,如果我想查询出所有人的名字,这个操作是不是就很难搞定了,来来来,配合起来~~,你应该说是的,那我就接着说,有同学可能就会说了,老师我用excel啊,看图2,一列就搞定了,没毛病,但是你想打开操作excel效率低不低。并且通过你自己写的程序来操作这些文件是不是很麻烦

MySQL 查看表结构简单命令

筅森魡賤 提交于 2019-12-16 15:03:21
一、简单描述表结构,字段类型 desc tabl_name; 显示表结构,字段类型,主键,是否为空等属性,但不显示外键。 例如:desc table_name 二、查询表中列的注释信息 select * from information_schema.columns where table_schema = 'db' #表所在数据库 and table_name = 'tablename' ; #你要查的表 例如: 可以自动选择你需要信息 三、只查询列名和注释 select column_name, column_comment from information_schema.columns where table_schema ='db' and table_name = 'tablename' ; 例如: 四、#查看表的注释 select table_name,table_comment from information_schema.tables where table_schema = 'db' and table_name ='tablename' 例如: 五、查看表生成的DDL show create table table_name; 例如: 这个命令虽然显示起来不是太容易看, 这个不是问题可以用\G来结尾,使得结果容易阅读;该命令把创建表的DDL显示出来,于是表结构

mysql分表之水平分割

☆樱花仙子☆ 提交于 2019-12-13 18:09:53
一、背景 老大安排要对某张大容量表进行分割,根据年份分割成多张表。 二、水平分割 水平拆分是指数据表行的拆分,表的行数超过百万行时,就会变慢,这时可以把一张的表的数据拆成多张表来存放。 定义规则分表后,表结构与原表相同,查询性能会提高。 ····· 三、步骤。 做好备份 根据年份创建分区表(t_user_data_年份) 1 -- 创建和原表结构相同的分区表 2 create table t_user_data_2019 like t_sys_user; 3 create table t_user_data_2018 like t_sys_user; 4 create table t_user_data_2017 like t_sys_user; 5 create table t_user_data_2016 like t_sys_user; 找出各年份的数据,并将其插入到分区表 1 -- 找出各个年份的数据,并将其插入到分区表 2 select * from t_sys_user where DATE_FORMAT(create_time,'%Y') = '2017'; 3 INSERT INTO t_user_data_2017 select * from t_sys_user where DATE_FORMAT(create_time,'%Y') = '2017'; 4

mysql ------多表操作2

你。 提交于 2019-12-11 08:16:09
-- 1:一对多的关系(省表和市表) -- 1 创建主表(省表) CREATE TABLE province( pid INT PRIMARY KEY AUTO_INCREMENT, pname VARCHAR(20), pdesc VARCHAR(100) ); -- 2 创建从表(市表) CREATE TABLE city( cid INT PRIMARY KEY AUTO_INCREMENT, cname VARCHAR(20), cdesc VARCHAR(100), province_id INT #外键列 ); -- 3 建立外键约束 ALTER TABLE city ADD CONSTRAINT fk_xxx FOREIGN KEY(province_id) REFERENCES province(pid); -- 4 给主表添加数据 INSERT INTO province VALUES(NULL, '河北省','燕赵大地'), (NULL, '山东省','齐鲁圣地'), (NULL, '河南省','中原腹地'); -- 5 给从表添加数据 INSERT INTO city VALUES(NULL, '邯郸市','赵国都城',1), (NULL, '保定市','直隶总督',1), (NULL, '青岛市','青岛啤酒',2), (NULL, '济南市','趵突泉城'

Mysql安装、配置、优化

℡╲_俬逩灬. 提交于 2019-12-10 04:43:34
Mysql安装、配置、优化 下载软件包 wget http://test.hexin.cn/software/mysql-5.7.9.tar.gz -P /usr/local/src/ wget http://test.hexin.cn/software/cmake-3.4.0.tar.gz -P /usr/local/src/ wget http://test.hexin.cn/software/boost_1_59_0.tar.gz -P /usr/local/src/ 安装基础软件 yum -y install make gcc-c++ bison-devel ncurses-devel 二、 安装配置MySQL 编译安装cmake tar zxvf /usr/local/src/cmake-3.4.0.tar.gz cd /usr/local/src/cmake-3.4.0 ./configure && make && make install 编译安装boost(编译时不加boost,可以不用安装此软件) tar zxvf /usr/local/src/boost_1_59_0.tar.gz -C /usr/local/boost/ cd /usr/local/boost/ ./bootstrap.sh ./b2 新增用户用户组 groupadd mysql

MySQL大表优化方案

坚强是说给别人听的谎言 提交于 2019-12-08 18:12:14
当MySQL单表记录数过大时,增删改查性能都会急剧下降,可以参考以下步骤来优化: 单表优化 除非单表数据未来会一直不断上涨,否则不要一开始就考虑拆分,拆分会带来逻辑、部署、运维的各种复杂度,一般以整型值为主的表在 千万级 以下,字符串为主的表在 五百万 以下是没有太大问题的。而事实上很多时候MySQL单表的性能依然有不少优化空间,甚至能正常支撑千万级以上的数据量: 字段 尽量使用 TINYINT 、 SMALLINT 、 MEDIUM_INT 作为整数类型而非 INT ,如果非负则加上 UNSIGNED VARCHAR 的长度只分配真正需要的空间 使用枚举或整数代替字符串类型 尽量使用 TIMESTAMP 而非 DATETIME , 单表不要有太多字段,建议在20以内 避免使用NULL字段,很难查询优化且占用额外索引空间 用整型来存IP 索引 索引并不是越多越好,要根据查询有针对性的创建,考虑在 WHERE 和 ORDER BY 命令上涉及的列建立索引,可根据 EXPLAIN 来查看是否用了索引还是全表扫描 应尽量避免在 WHERE 子句中对字段进行 NULL 值判断,否则将导致引擎放弃使用索引而进行全表扫描 值分布很稀少的字段不适合建索引,例如"性别"这种只有两三个值的字段 字符字段只建前缀索引 字符字段最好不要做主键 不用外键,由程序保证约束 尽量不用 UNIQUE

MySQL_表数据操作

不羁的心 提交于 2019-12-07 16:04:36
目录 1.添加数据 2.添加多条数据 3.更新数据 4. 删除数据 5.查看表数据 1.添加数据 insert into <表名>[<字段名>[,...]] values(<常量>[,...]); insert into 表名(字段名1,字段名2) values('2015','男'); //可以选择性输入,但是主键必须输入 insert into 表名 values('数据1','数据2'); //此方法,必须输入所有字段 2.添加多条数据 insert into 表名 values(),(); 3.更新数据 update<表名> set<字段名>=<表达式>[,...] [where<条件>]; 例如:将张文静的出生日期改为1995-02-01 update 表名 set 出生日期='1995-02-01' where 姓名='张文静'; 更改改字段下的所有数据 update 数据表名 set 成绩=成绩*0.6; 4. 删除数据 1.特定记录 delete from<表名> [where<条件>]; delete from 表名 where 姓名='张文静'; 2.删除表中所有记录 truncate table<表名>; delete from 表名; 3.先删除数据表,然后再重新创建原来的表,数据丢失,字段类型不变 truncate table 表名; 4.删除数据表