mysql基础

数据库:一种可以存储数据单元的产品
- 库 databases
- 表 tables
- 字段 columns
- 数据 data
1、多库。多种数据库,为了实现多产品开发存在库中有多表。

2、多表。多张表。为实现多模块开发所存在的,,表里面有数据。比如用户模块,user, user_coin, user_play , user_log,注意:表的命名方    式,  通常为:产品前缀_模块名_用处,比如:dz_user_plog。,不推荐大写,不推荐简短缩写。  
3、字段。通常情况下是存在表中的,一般字段可以表示在这个表里所有相关的事物的行为。

比如 tb_user 。字段可以有: user_id ,user_name , user_password , user_sex, user_coin , user_regtime, user_logintime
一旦实现功能以后,表中的字段将会有数据。
注意:字段可以有多种数据类型,包括:整型(tinyint smallint int bigint)、字符型( char varchar text)、日期型( date datetime )
每一种的数据类型都会对应特定的字段业务。
4、数据。数据的来源都会是外界的,MySQL只负责存储,查询,修改,删除数据,不会自动产生数据,除非写一些必要的语句。如存储过程。
字段类型:
=====》整型:
很小的整数。带符号的范围是-128到127。无符号的范围是0到255。
smallint SMALLINT[(M)] [UNSIGNED] [ZEROFILL]
小的整数。带符号的范围是-32768到32767。无符号的范围是0到65535。
int INT[(M)] [UNSIGNED] [ZEROFILL]
普通大小的整数。带符号的范围是-2147483648到2147483647。无符号的范围是0到4294967295。
bigint [UNSIGNED] [ZEROFILL]
大整数。带符号的范围是-9223372036854775808到9223372036854775807。无符号的范围是0到18446744073709551615。
====》字符型:
char 固定长度字符串,当保存时在右侧填充空格以达到指定的长度。M表示列长度。M的范围是0到255个字符。
注释:当检索CHAR值时尾部空格被删除。
如果想要将某个CHAR的长度设为大于255,执行的CREATE TABLE或ALTER TABLE语句将失败并提示错误.
varchar VARCHAR(M) [BINARY]
变长字符串。M 表示最大列长度。M的范围是0到65,535。(VARCHAR的最大实际长度由最长的行的大小和使用的字符集确定。最大有效长度是65,532字节)。
注释:MySQL 5.1遵从标准SQL规范,并且不删除VARCHAR值的尾部空格。
VARCHAR是字符VARYING的简写。
BINARY属性是指定列的字符集的二元 校对规则的简写。排序和比较基于数值字符值。
VARCHAR保存时用一个字节或两个字节长的前缀+数据。如果VARCHAR列声明的长度大于255,长度前缀是两个字节。
text TEXT[(M)]
最大长度为65,535(2^16–1)字符的TEXT列。
可以给出可选长度M。则MySQL将列创建为最小的但足以容纳M字符长的值的TEXT类型。
===》日期类型:
DATE
日期。支持的范围为'1000-01-01'到'9999-12-31'。MySQL以'YYYY-MM-DD'格式显示DATE值,但允许使用字符串或数字为DATE列分配值。
DATETIME
日期和时间的组合。支持的范围是'1000-01-01 00:00:00'到'9999-12-31 23:59:59'。MySQL以'YYYY-MM-DD HH:MM:SS'格式显示DATETIME值,但允许使用字符串或数字为DATETIME列分配值。
TIMESTAMP[(M)]
时间戳。范围是'1970-01-01 00:00:00'到2037年。
table
TIMESTAMP列用于INSERT或UPDATE操作时记录日期和时间。如果你不分配一个值,表中的第一个TIMESTAMP列自动设置为最近操作的日期和时间。也可以通过分配一个NULL值,将TIMESTAMP列设置为当前的日期和时间。
TIMESTAMP值返回后显示为'YYYY-MM-DD HH:MM:SS'格式的字符串,显示宽度固定为19个字符。如果想要获得数字值,应在TIMESTAMP 列添加+0。
========== 限定符号 ===========
null 表示该字段可以为空
not null 表示该字段不能为空
default 表示该字段默认值,即不填写的时候的值
auto_increment 表示自增长键,一般用于主键,一旦用了该限定符表示主键,那么主键可以不需要自主插入数据,自动增加插入。
primary_key 一般表示可以区分该表唯一数据的键。比如身份证号。因此我们可以认为在每一个表里,都需要有至少一个主键。
foreign_key 外键。一般用于本表和外表的关联关系的键,比如用户表,和用户日志。现在我如果需要删除这个用户,那么很容易想到,一旦我删除了,我的日志肯定也要删除,这个时候就需要关联到其他的表去操作。注意:外键有一个很大局限性:很慢。
==========
 
DDL:数据库定义语言,用于基础数据库去操作的SQL语句。

 如:create ,drop , alter

create / drop / alter

- 创建数据库

create database 数据库名;

- 删除数据库

drop database 数据库名;

- 查询数据库

show databases;

- 切换数据库

use 数据库名;

- 创建表

create table 表名(

id int not null primary key,

name varchar(30) not null,

password varchar(32) not null,

regtime datetime not null

);

- 删除表

drop table 表名;

- 查表

show tables;

- 查表的数据结构

desc 表名;

- 删除表中某一列

alter table 表名 drop 列名称;

- 增加列

alter table 表名 add 列名称 修改限定;

- 重命名表

alter table 表名 rename 新表名;


DML:数据库操作语言,用于操作数据库中的表的SQL语句。

如:select ,insert , update ,delete

select 查:select *(或者字段名) from 表名

insert 增: insert into 表名(字段名) values( 值 )

注意:

1、一般表中,主键都是自增长的,因此在插入的时候的不需要填写某个主键,也就是说不需要插入值。

insert into user( name ) values ( 2 );

2、插入数据的时候,如果是整型字段,是不允许其他类型数据插入。如果是字符串,是允许其他类型插入的。

3、多条数据插入。insert into users(字段名) values (值1),(值2) 注意:内存情况!

update 改: update 表名 set 字段名 = 值

delete 删:

1、delete from 表名(自增长ID不会消失记录)

2、truncate table 表名(自增长ID会消失记录)

条件判断:where 。用于操作某一区间的数据。

比如:

1、update 表名 set 列 = 新值 where 列 = 值

2、select * from 表名 where 列 = 值

3、delete from 表名 where 列 = 值

NOW() 显示现在时间

as 别名

select NOW() as ''

聚合语句:

1、group by 分组。 一般用于分组数据查看。比如:select * from user group by regtime;

2、order by 排序。一般用于数据排序,也经常用于分页业务( 与limit 混合使用 )

比如:select * from user order by id desc(倒序,asc) limit 从第几个开始,每页显示几个。

1、limit 一般要放在SQL最后。

2、order by 和 group by 他们之间有仇,一定要分开。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值