mysql基础知识

 

 

SQL: structured query language 结构化查询语言

 

 

下载地址:(windos/linux环境下的安装文件)

http://downloads.skysql.com/archive/index/p/mysql/v/5.0.96

 

安装文档 见附件: MySQL安装图解.doc

      作为自学,安装时一路next,到设置数据库语言的时候,设置为utf-8即可,细节见附件文档。

 

参考手册 见附件: MySQL_5.1_zh.chm

 

一些说明:

a) mysql 内可以创建多个数据库,这个和oracle不同(只能有一个);

b) mysql 是数据库服务器(数据库管理程序),不是一个数据库,我们利用这个服务器(工具)可以创建多个数据库,在利用这个服务器(工具)在指定数据库内创建表,下图是这三者关系:

 

 

常用数据类型:

 

分类数据类型说明
数值类型

bit,

boolean

tinyint(对应java的byte)

smallint(对应java的short),

int,

bigint(对应java的long)

float,

double

 
文本、二进制类型

char   最大255

varchar(20) --->最大长度为20,长度根据里面存储的内容长度而动态改变  

                          最大255

BLOB (二进制大对象 LOB(对象 eg 图片) )

 

TEXT(eg:txt文件里面的内容)         

LONGTEXT(longclob)   比如存放帖子内容

1 VARCHAR

BLOB

TEXT 是变长类型

 

2 每个类型的存储需求取决于列值的实际长度

时间日期

DATE (YYYY-MM-DD

DATETIME ((YYYY-MM-DD HH:MM:SS

TimeStamp  当前这一刻的时间数,

 

 

 

 

 

 

常用表/字段操作命令:

 

1 创建一个使用utf-8字符集的mydb2数据库  :  create database zmdb character set utf8;  (这里utf-8需要写成 utf8)

2 显示所有数据库 : show databases;

3 显示创建数据库的详细信息:  show create database  mydb; 



 

4 删除数据库:  drop database  mydb;

5 修改mydb的字符集:  alter database mydb character set gb2312;

6 创建表: 

 

create table employee

(

id int,

name varchar(40),

sex varchar(8),

birthday date,

entry_date date,

job varchar(20),

salary double,

resume text

)character set utf8 ;   创建表 并设置编码格式、

 

7 修改表的名称: rename table employee to employee2;

8 修改表的字符集: alter table  employee character set utf8;

9 表中增加列: alter table employee add image blob;

10 修改列的长度:  ALTER TABLE employee MODIFY COLUMN image VARCHAR(40);

11 修改列的名称: ALTER TABLE employee CHANGE COLUMN image images VARCHAR(20);

12 删除列:  ALTER TABLE employee DROP COLUMN images;

 

 

 

 如下是mysql CRUD(create read update delete)命令:

 

 1 insert:

    a) 插入数据时, 字符和日期类型应该放在单引号内

    b) 插入字段中不包含列的话,那么此列在数据库中的数值为Null'

    c) inseret into tablename(字段1,字段2....) values (value1,value2...); 建议这种写法,方便自己和别人查询

 

2 update/delete,建议在执行时,先写where 条件, 然后在完善 update/delete语句,防止表数据全部被操作。

将所有员工薪水修改为5000元。

update employee set salary=5000;

删除表中名称为’李一’的记录

delete from employee where name='李一';

 

3 truncate语句: 删除表

       truncate table employee;  和  delete from employee;  的区别:

 

  a)  前者删除时操作流程--> 0 记住表结构 1 摧毁表 2 在新建表

  b) 后者是一条条的删除表中的记录,效率低于前者

 

4 select 详解

 

 where子句用于过滤,常跟着运算符进行过滤,

 where子句中常用的运算符如下:

比较运算符

>   <   <=   >=   =    <>

 

BETWEEN  ...AND...

 
IN

显示在in列表中的值,例:in(100,200)

LIKE% 代表零个或多个任意字符,_ 代表一个字符
is null 

逻辑运算符

and 
or 
not 
order by 子句用于查询排序, Asc表示升序,Desc表示降序,默认不写的情况下为Asc;
 
group by 子句:
   a) 用于分组
    b)常和having组合在一起捆绑使用-->having 和where是一个功能,只不过比where可以多跟合计函数,
    eg: 查询购物车中订单超过100元的商品
    select product from orders group by(product) having sum(product) > 100    错误写法 :      select product from orders group by(product)  where sum(product) > 100
 
 
 
 
5 合计函数:
   a) count(列名) ---> 用于统计总个数 eg: SELECT COUNT(*) FROM `employee`;
   b) sum(列名) ---> 用于计算求和 eg: SELECT SUM(`chinese`) FROM `student`;
   c) avg(列名) ---> 用于计算平均值 eg: SELECT AVG(`chinese`) FROM `student`;
   d) max/min(列名) ---> 用于计算最大/最小值 eg: SELECT MAX(`chinese`) FROM `student`;
 
6 日期相关函数:
ADDTIME (date2 ,time_interval )将time_interval加到date2
CURRENT_DATE (  )当前日期
CURRENT_TIME (  )

当前时间

eg: SELECT CURRENT_TIME (  )  13:34:19

CURRENT_TIMESTAMP (  )

当前时间戳

eg: SELECT CURRENT_TIMESTAMP (  )

2014-06-03 13:34:19

DATE (datetime )返回datetime的日期部分
DATE_ADD (date2 , INTERVAL d_value d_type )在date2中加上日期或时间
DATE_SUB (date2 , INTERVAL d_value d_type )在date2上减去一个时间
DATEDIFF (date1 ,date2 )两个日期差
NOW (  )当前时间
YEAR|Month|DATE (datetime )

年|月|日 eg:SELECT  YEAR( CURRENT_DATE (  ))

 2014


 字符串相关函数:

 

CHARSET(str)返回字串字符集SELECT CHARSET("111");
CONCAT (string2  [,... ])连接字串 
INSTR (string ,substring )返回substring在string中出现的位置,没有返回0 
UCASE (string2 )转换成大写 
LCASE (string2 )转换成小写 
LEFT (string2 ,length )从string2中的左边起取length个字符 
LENGTH (string )string长度 
REPLACE (str ,search_str ,replace_str )在str中用replace_str替换search_str 
STRCMP (string1 ,string2 )逐字符比较两字串大小, 
SUBSTRING (str , position  [,length ])从str的position开始,取length个字符 
LTRIM (string2 ) RTRIM (string2 )去除前端空格或后端空格 

 

 

 数学相关函数:

 

ABS (number2 )绝对值案例待补充
BIN (decimal_number )十进制转二进制 
CEILING (number2 )向上取整 
FLOOR (number2 )向下取整 
CONV(number2,from_base,to_base)进制转换 
FORMAT (number,decimal_places )保留小数位数 
HEX (DecimalNumber )转十六进制 
LEAST (number , number2  [,..])求最小值 
MOD (numerator ,denominator )求余 
   

 

 定义表的约束:

定义主键约束
  primary key:不允许为空,不允许重复
删除主键:alter table tablename drop primary key ;
定义主键自动增长
  auto_increment
定义唯一约束
  unique
定义非空约束
  not null
定义外键约束
constraint ordersid_FK foreign key(ordersid) references orders(id),

 

 

推荐一个不错的mysql客户端软件   SQLyog-9.2.0-2Community

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值