Mysql 基础语法2

一,字符串类型

  1. char和varchar

1. 都需要指定字符的长度,char中的长度是字符的长度,而varchar的长度是字节的长度

2.  char中指定的长度就是实际占用的长度,而varchar指定的长度只是一个范围,所以varchar还要拿1-2个字节存储该字符串到底有多少个字节,并且varchar中能够实际存储的字符跟编码有关(utf8编码20000多,gbk编码30000多)

3.  varchar对存储空间的占用更灵活,但是char的效率更高

4.如果字符串的长度是固定已知的,就用char,如果字符串的长度是可变的,就用varchar

b.text:文本类型,使用起来类似于varchar,只不过这里不需要指定长度,其中longtext认为文本没有限制

c.enum:枚举类型,类似于单选!实际存储的是原选项的位置,位置用1,2,3,4来代替,理论上最多可以表示65535个选项

d.set:集合类型,类似于多选!实际存储的是也原选择的位置,位置用1,2,4,8来代替,然后把所有选项的位置相加,理论上最多可以表示64个多选项

e.binary、varbinary、blob:二进制文本类型,就是字节流的char、varchar和text,在实际的项目中,很少使用

二,列属性

  1. null|not null,缺省值是null,也就是允许为空,如果是notnull而又没有给该字段赋值的话,系统会首先查询该字段有没有默认值
  2. default:给一个字段一个默认值,如果没有给该字段填充数据,就用该默认值来代替,通常就是配合not null一起使用
  3. primary key:主键,唯一可区别其他记录的字段,一个表中只能有一个主键,也可以很多个字段组合成一个组合主键,而且不允许为空!
  4. unique key:唯一键,与主键的区别是唯一键可以有很多个,而且允许为空
  5. auto_increment:自动增长,使用这个属性有两个条件,第一该字段必须为整型,第二该字段必须存在索引,通常就是配合主键一起使用,也可以通过修改表选项设置自动增长的默认初始值
  6. comment:列注释

三,索引

  1. 索引的本质就是在“原始表”的基础之上根据某个或某些字段进行排序后的“内置表”
  2. 索引的最大优势可以极大的提高查询速度
  3. 在提高查询速度的同时也降低了增删改的速度

四,实体与实体关系

  1. 一对一:主要用来做数据表的优化(垂直分割)
  2. 一对多:在多的那一方增加一个字段,用于指向1的那一方
  3. 多对多:增加一个中间表,就是将一个多对多的关系拆分成两个一对多的关系

五,外键

  1. 只有InnoDB存储引擎才可以使用
  2. 关键字:foreign key
  3. 级联操作:主表更新onupdate[级联操作],主表删除:语法形式为:on delete[级联操作]。cascade:同步操作,set null:设置为null,restrict:拒绝主表的更新或删除
  4. 定义方式:foreignkey(本表字段名) references 父表(主键) on delete[cascade|set null|restrict] on update [cascade|setnull|restrict]

六,范式

1第一范式:要求把各种数据设计成一个一个的字段,不能再分

2第二范式:在满足第一范式的基础之上,表中的一行都具有唯一的可以区分的特性;不能有部分依赖

3第三范式:在满足第二范式的基础之上,消除传递依赖

时间: 2024-10-06 00:59:11

Mysql 基础语法2的相关文章

Mysql 基础语法3

一,其他数据操作(高级操作) 蠕虫复制(insert into 表名(字段列表) select *|字段列表 from 表名) 主键重复:insert into 表名(字段列表)values(值列表)on duplicate key update 字段1=值1,字段2=值2--    replace into 表名(字段列表) values(值列表) 删除和修改的时候都可以加上order by和limit子句 select选项(all,distinct,缺省值是all) 别名:字段|表达式|表名

mysql 基础语法

以下为自己学习mysql 的一些笔记,以方便查询 目录 一. ALTER的 语法 二. 表的完整性约束 三. 索引的操作(mysql 数据库支持至少 16 个索引) 四. 视图的操作 五. 触发器的操作 六. 单表查询数据记录 七. 多表数据记录查询 八. 使用mysql 常用函数 九. mysql 的存储过程和 函数的操作 十. mysql 游标的 使用 十一. mysql 的日志管理 十二. mysql 的维护和 性能提高 十三. mysql 的安全机制 一. ALTER的 语法 1.修改表

mysql基础语法及拓展到web中的sql注入

本来是想写下javaweb的mvc(tomcat, spring, mysql)的搭建,  昨天搭到凌晨3点, 谁知道jdbcTemplate的jar包不好使, 想死的心都有了, 想想还是休息一下, 所以复习一下mysql的基本语法,因为以前对web的安全比较熟悉, 看过好多黑客防线以及黑客X档案, 黑锅几家网吧,你懂的, o(^▽^)o, 所以拓展一下web安全, 常见web注入的方式, 以及找的两篇资料: 首先复习一下基本的增删改查: //从Users表中删除User为admin的字段; d

Mysql 基础语法4

一,交叉连接:做表与表的笛卡尔积,关键字是crossjoin,是整个交叉连接中使用的最少但是也是概念最重要的 二,内连接 关键字:inner join,这里的inner可以省略 内连接的本质就是在交叉连接的基础之上对记录加上相应的匹配条件进行筛选 三,外连接 左外连接:左表是主表,left outer join 或left join 右外连接:右表是主表,right outer join或right join 四,自然连接 这里的自然就是自动,是指匹配的连接条件是由系统来决定 自然连接又分成自然

MySQL基础语法命令

1. 建表 创建MySQL数据表需要以下信息: 表名 表字段名 定义每个表字段 通用语法: CREATE TABLE table_name (column_name column_type); 实例: CREATE TABLE IF NOT EXISTS `runoob_tbl`( `runoob_id` INT UNSIGNED AUTO_INCREMENT, `runoob_title` VARCHAR(100) NOT NULL, `runoob_author` VARCHAR(40) N

MySQL 基础语法结构

增.删.改.查 库 DATABASE 1,创建数据库[增] create database dbname charset utf8; #创建 数据库 库名 设置编码 UTF8 2,查询库[查] show create database dbname; #查询数据库的 创建信息 show databases; #列出所有存在的数据库名 3,改数据库[改] alter database db1 charset gbk; #更改 数据库 名 编码格式 GBK #更改数据库名为db1的数据库编码为gbk

MySQL基础语法——表的操作

1.创建表 基本语法 create table tableName( field1 datatype, field2 datatype, field3 datatype ); field: 队列名 datatype:列类型 创建一个学生表例子: create table student( id int, name varchar(30) gender char(6) ); 2.修改表 2.1增加表的列 基本语法 alter table tableName add (column datatype

MySQL基础语法——数据库操作

登陆用户名为root数据库: mysql -u root -p 查看数据库: show databases; 创建数据库: create database if not exists databaseName; 选择使用的数据库: use databaseName; 查看数据库中的表: show tables; 备份数据库(必须在系统环境下使用): mysqldump -u 用户名 -p 数据库名 > f:\备份.sql 恢复数据库: source f:\备份.sql 删除数据库: drop d

MySQL基础语法

增加一列到某列名后alter table table_name add column_name int after column_name; 改变列名称alter table table_name change old_column_name new_column_name int; 修改类型alter table table_name modify column_name float; 删除列alter table table_name drop column_name; 修改表名alter