1029 MySQL操作表 MySQL操作表数据行

数据库介绍

架构关系

数据库服务器:运行数据库管理软件
数据库管理软件:管理数据库
数据库:即文件夹,用来组织文件/表
表:即文件,用来存放多行内容/多条记录

mysql账号操作

mysql基于socket编写的C/S架构软件

数据库操作

语法:
create database 数据库名 charset 字符编码;
数据库命名规则:
字母、数字、下划线、@、#、$
区分大小写
唯一性
不能使用关键字,如create\select\use等等
不能单独使用数字
最长128位

语法:
drop database 数据库名;

语法:
改变编码格式
alter database 数据库名 charset 字符编码
改变数据库名称:
只能删了重建,后续学习如何保存
drop database 数据库名;
create database 数据库名;

语法:
show databases;

表操作

对表结构的操作

选择表

语法:
use 表名;
唯有此语法不加分号也行

列约束条件

auto_increment 自增
primary key 主键索引,加快查询速度,列的值不能重复
not null 非空
default 设置默认值

列类型

数字

整型:
tinyint
smallint
int(*******)推荐使用
mediumint
bigint
整数类型
取值范围
unsigned 加上代表不能取负数 只适用于整型
浮点型:
float:不一定精确
decimal(m,d):非常精确的数字,m是数字总个数(负号不算),d是小数点后个数,四舍五入。

字符串

char(长度):
定长,无论插入的字符是多少个,永远固定占规定的长度
varchar(长度):
可变长度,根据插入的字符串的长度来计算所占的字节数,但是有一个字节是用来保存字符串的大小的
注意点:如果不能确定插入的数据的大小,一般建议使用varchar(255)

时间日期类型

YEAR
YYYY(1901/2155)
DATE
YYYY-MM-DD(1000-01-01/9999-12-31)
TIME
HH:MM:SS(‘-838:59:59‘/‘838:59:59‘)
DATETIME (********) #最常用的
YYYY-MM-DD HH:MM:SS(1000-01-01 00:00:00/9999-12-31 23:59:59 Y)
TIMESTAMP
YYYYMMDD HHMMSS(1970-01-01 00:00:00/2037 年某时)

枚举类型

enum():列出所有的选项

语法:
创建表
create table 表名(
字段1名 数据类型(字符数) 约束条件,
字段2名 数据类型(字符数) 约束条件;
);
新增列:
alter table 表名(
add 字段名 数据类型(完整的约束条件),
add 字段名 数据类型(完整的约束条件);
);
alter table 表名
add 字段名 数据类型(完整的约束条件) first;
alter table 表名
add 字段名 数据类型(完整的约束条件) after 字段名;

语法:
删除表:
drop table 表名;
删除列:
alter table 表名 drop 字段名;

改表名:
alter table 表名 rename 新表名
修改字段:
alter table 表名 modify 字段名 数据类型(完整的约束条件);
alter table 表名
change 旧字段名 新字段名 新数据类型(完整的约束条件);

基本结构:desc 表名;或者descirbe 表名;
更详细定义信息:show create table 表名;

复制表结构

create table 表名 like 表名;

表记录操作

对表数据的操作

语法:
插入完整数据(顺序插入)
insert into 表名(字段1,字段2,字段3...字段n) values(值1,值2,值3...值n);
insert into 表名 values(值1,值2,值3...);
指定字段插入数据
insert into 表名(字段1,字段2,字段3...) values(值1,值2,值3...);
插入多条记录
insert into 表名 values
(值1,值2,值3...值n),
(值1,值2,值3...值n),
(值1,值2,值3...值n);
插入查询结果
insert into 表1名(字段1,字段2,字段3...字段n) select (字段1,字段2,字段3...字段n) from 表2名 where ...;

删数据

语法:
delete from 表名 where 筛选条件
truncate from 表名 ## 没有where条件,直接删除整个表
delete与truncate的区别:
delete 之后,插入的数据从上一次主键自增加1开始,truncate则是从1开始
delete 删除,是一行一行删除,truncate:全选删除,truncate删除的速度是高于delete的

语法:
一次只能修改一条记录,可以修改这条记录的多个值
update 表名 set 字段1名=值1,字段2名=值2,字段3名=值3 where 条件;

语法:
select * from 表名;
select 字段名 from 表名 where 筛选条件 # 没有条件就选中列中所有值
筛选条件:
字段名 相关
> >= < <= != <>
between ... and...
in (a,b,c)
not in (a,b,c)
like ‘x%‘ 以x开头
like ‘%x‘ 以x结尾
like ‘%x%‘ 包含x
distinct 避免重复

原文地址:https://www.cnblogs.com/793564949liu/p/11762213.html

时间: 2024-12-21 00:30:02

1029 MySQL操作表 MySQL操作表数据行的相关文章

Mysql:把指定数据行排在前面

http://www.biquge.cc/html/156/156282/22732494.html http://www.biquge.cc/html/156/156282/22732495.html http://www.biquge.cc/html/156/156282/22732496.html http://www.biquge.cc/html/156/156282/22732497.html http://www.biquge.cc/html/156/156282/22732498.

操作表与操作表数据行

一. 操作表 增 语法: create table 表名( 字段名 列类型 [可选的参数], ### 记住加逗号 字段名 列类型 [可选的参数], ### 记住加逗号 字段名 列类型 [可选的参数] ### 最后一行不加逗号 ..... )charset=utf8; #### 后面加分号 列约束:(*********************) auto_increment : 自增 1 primary key : 主键索引,加快查询速度, 列的值不能重复 NOT NULL 标识该字段不能为空 D

设置mysql数据表列自动递增以及数据行插入操作

创建mysql数据表,设置id列递增.主键create table running_log ( id int primary key auto_increment, routename varchar(255), log varchar(255), time datetime ); 往有递增数据列的数据表插入新的数据行 1.INSERT INTO `running_log` (`id`, `routename`, `log`, `time`) VALUES ('null', 'yunnan-10

MySQL 分区表原理及数据备份转移实战

1.分区表含义 分区表定义指根据可以设置为任意大小的规则,跨文件系统分配单个表的多个部分.实际上,表的不同部分在不同的位置被存储为单独的表.用户所选择的.实现数据分割的规则被称为分区函数,这在MySQL中它可以是模数,或者是简单的匹配一个连续的数值区间或数值列表,或者是一个内部HASH函数,或一个线性HASH函数. 分表与分区的区别在于:分区从逻辑上来讲只有一张表,而分表则是将一张表分解成多张表. 2.分区表优点 1)分区表更容易维护.对于那些已经失去保存意义的数据,通常可以通过删除与那些数据有

【转】mysql数据库读写分离数据同步

转载请注明来源:mysql数据库读写分离数据同步 mysql数据库读写分离数据同步 我是用了两个xp(一个主的,一个从的)的系统测试成功的,linux系统我也做测试了,没有成功,不过我想我所遇到的问题是同一个问题,xp下的可以成功,linux下的应该也可以成功,稍候会测试,然后更新结果! PS:刚测试了下linux 可以同步成功,主服务器是xp,从服务器是centos,可以成功. 例: A机器 192.168.0.2 B机器 192.168.0.3 两个机器可以ping通,互相访问 先配置主服务

MySQL单表百万数据记录分页性能优化

原文地址:http://www.cnblogs.com/lyroge/p/3837886.html MySQL单表百万数据记录分页性能优化 背景: 自己的一个网站,由于单表的数据记录高达了一百万条,造成数据访问很慢,Google分析的后台经常报告超时,尤其是页码大的页面更是慢的不行. 测试环境: 先让我们熟悉下基本的sql语句,来查看下我们将要测试表的基本信息 use infomation_schemaSELECT * FROM TABLES WHERE TABLE_SCHEMA = 'dbna

【原创】MySQL和PostgreSQL 导入数据对比

在虚拟机上测评了下MySQL 和 PostgreSQL 的各种LOAD FILE方式以及时间. 因为是虚拟机上的测评,所以时间只做参考,不要太较真, 看看就好了. MySQL 工具: 1. 自带mysqlimport工具. 2. 命令行 load data infile ... 3. 利用mysql-connector-python Driver来写的脚本. PostgreSQL 工具: 1. pgloader 第三方工具. 2. 命令行 copy ... from ... 3. 利用psyco

Mysql导入导出大量数据的方法、备份恢复办法

经常使用PHP+Mysql的朋友一般都是通过phpmyadmin来管理数据库的.日常的一些调试开发工作,使用phpmyadmin确实很方便.但是当我们需要导出几百兆甚至几个G的数据库时,phpmyadmin就会很卡.甚至如果你是想导入大量数据,则phpmyadmin完全无法完成.因为phpmyadmin是基于PHP网页的,无法上传太大的sql文件.其实mysql官方给了我们很好的解决方案:mysqldump. 下面介绍,如何在Windows环境下,使用mysqldump导出数据库: 找到你mys

MySQL 之 导出导入数据

导出数据库(sql脚本)  mysqldump -u 用户名 -p 数据库名 > 导出的文件名mysqldump -u root -p --databases db_name > test_db.sql                 ##得到整个数据库,最全面::不要--databases也行,就是不够信息全面 mysql导出数据库一个表 mysqldump -u 用户名 -p 数据库名 表名> 导出的文件名mysqldump -u wcnc -p test_db users>

测试必备技能系列1 :通过mysql命令进行脚本数据导入

老徐,分享测试项目中实际能解决问题的干货! 今日分享: 如何通过mysql命令行,导入mysql脚本文件数据? ----- 解决实际的问题: 工作过程中,经常需要导入mysql脚本文件 很多同学可能会说,直接通过mysql客户端导入,轻松搞定: 但是,很多服务器,为了安全考虑,并不会开放第三方客户端登录权限(当然有很多其他方式处理,今天不探讨): 这个时候,怎么导入脚本? ----- 前提: 你已经会操作mysql 知道mysql是啥 会基本的mysql命令 知道 mysql -u root -