mysql操作数据初识

数据库初识:

 

数据库就是存储数据的仓库,其本质是一个文件系统,数据按照特定的格式将数据存储起来,用户可以对数据库中的数据进行增加,修改,删除及查询操作.

 

数据库管理系统:

数据库管理系统(DataBase Management System,DBMS):指一种操作和管理数据库的大型软件,用于建立.使用和维护数据库,对数据库进行统一管理和控制,以保证数据库的安全性和完整性.用户通过数据库管理系统访问数据库中的数据.

 

数据库与数据管理系统的关系.

 

数据库表:

数据库中以表为组织单位存储数

表类似我们的java,每个字段都有对应的数据类型.


我们熟悉的java程序来与关系型数据对比,就会发现如下关系:

=============>

类中属性=======>表中字段

对象===========>记录

 

表数据:

根据表字段所规范的数据类型,向其中填入一条条的数据,而表中的每条数据类似类的实例对象.表中的一行一行的信息称之为记录.

表数据与java类对象的对应:



常见数据库:


常见的数据库管理系统:

Mysql:开源免费的数据库,小型的数据库.已经被oracle收购.mysql6.x版本也开始收费

Oracle:收费的大型数据库,oracle公司的产品,oracle收购sun公司,收购mysql.

DB2:IBM公司的数据库产品,收费的.常应用在银行系统中

SQLSERVER:Microsoft公司收费的中型的数据库.c#,.net等语言常使用.

SyBase:已经淡出历史舞台.提出了一个非常专业数据建模的工具powerDesigner.

SQLite:嵌入式的小型数据库,应用在手机端.

常用的数据库:mysql,oracle

 

SQL语句:

数据库不识别java语言,我们使用数据库认识的sql语句.是数据库的代码.

结构化查询语言(Structured Query Language)简称sql.是关系型数据库管理系统都需要遵循的规范.不同的数据库生产厂商都支持sql语句,但都有特有内容.

SQL规范(普通话)    =====>mysql特有(方言)

====>oracle特有(方言)

 

 

SQL语句分类:

Sql分类:

数据定义语言(DDL data Definition Language):用来定义数据库对象:数据库,,列等.关键字:create,alter,drop;

数据操作语言(DML data Manipulation Language):用来对数据库表的记录进行更新.关键字:insert,delete,update;

数据控制语言(DCL data control Language):用来定义数据库的访问权限和安全级别,及创建用户

数据查询语言(DQL data query language):用来查询数据库中表的记录.关键字:select,from,where;

 

 

SQL通用语法:

Sql语句可以单行或多行书写,以分号结尾;

可使用空格缩进来增强语句的可读性.

Mysql数据库的sql语句不区分大小写,关键字建议使用大写.(SELECT * FROM user)

同样使用/**/的方式完成注释

Mysql中的我们常使用的数据类型是:int 整型,double 浮点型,varchar 字符串型 ,date 日期类型,格式为yyyy-MM-dd,只用年月日,没有时分秒.

 

 

DDL:

操作库:

创建库:create database 数据库名 character set 字符集;

查看数据库:show databases;

查看某个数据库的定义信息:show create databases 数据库名;

删除数据库:drop database 数据库名称;

查看正在使用的数据库:select datatbase();

切换数据库: use 数据库名;

操作表:

建表:create table 表名(字段名 类型(长度)[约束],字段名 类型(长度)[约束]);

类型:varchar(n) 字符串 int 整型  double 浮点  date 时间  timestamp 时间 戳

约束:primary key主键.被主键修饰字段中的数据,不能重复.不能为null

查看表:

查看数据库中的所有表: show tables;

查看表结构: desc 表名;

删除表:

Drop table 表名;

修改表结构:

Alter table 表名 add 列名 类型(长度)[约束];  作用:修改表添加列.

Alter table 表名 modify 列名 类型(长度) 约束; 作用:修改表修改列的类型及 约束;

Alter table 表名 change 旧列名 新列名 类型(长度) 约束;  作用:修改表修改 列名

Alter table 表名 drop 列名; 作用:修改表删除列.

Rename table 表名 to 新表名;  作用:修改表名;

Alter table 表名 character set 字符集; 作用:修改表的字符集.

 

 

DML:

插入表记录:insert

Insert into 表 (字段1,字段2,字段3..) values (值1,值2,值3...);向表中插 入某些字段:

Insert into 表 values (值1,值2,值3,..,值n);向表中插入所有字段.

注意:值与字段必须对应,个数相同,类型相同;

值的数据大小必须在字段的长度范围内.

处理数值类型外,其他的字段类型的值必须使用引号引起(建议单引号)

如果要插入空值,可以不写字段,或者插入null;

更新表记录:update

用来修改指定条件的数据,将满足条件的记录指定列修改为指定值.

Update 表名 set 字段名=值,字段名=值,...;更新所有记录的指定字段

Update 表名 set 字段名=值,字段名=值,...where 条件;只更新满足条件的 字段

注意:列名的类型与修改的值要一致

修改值的时候不能超过最大长度

除了数值类型外,其他的字段类型的值必须使用引号引起.

删除记录:delete:

Delete from 表名 [where 条件]; 或 truncate table 表名;

注意:delete 一条一条记录删除,不清空auto_increment记录数;

Truncate直接将表删除,重新建表.auto_increment将置为零,从新开始.

 

 

DOS下面乱码问题:

Insert语句时报错 error 1366 Incorrect string value: '\xB7\xFE\xD7\xB0' for column 'cname' at row 1;

解决1: cmd命令窗口中输入命令 set names gbk;

原因:因为mysql的客户端设置编码是utf-8,而系统的cmd窗口编码是gbk.

查看mysql内部设置的编码:

Show variables like ‘character%’;  查看所有mysql的编码.

修改client connection results 的编码一致(GBK编码)

 

将客户端编码修改为gbk.

#方式1:单独设置

set character_set_client=gbk;

set character_set_connection=gbk;

set character_set_results=gbk;

 

#方式2:快捷设置

set names gbk;

 

 

 

DQL:

DQL数据查询语言(优化是难点):

语法:select [distinct] * | 列名,列名 from where 条件;

简单查询:select * from 表名;

查询表中某个某几个字段: select 字段名1,字段名2 from 表名;

别名查询,使用关键字 as

表别名:select * from 表名 as p;

列别名:select 列名 as p from 表名;

去掉重复值:select distinct price from 表名;

查询结果是表达式(运算查询):将所有商品的价格+10元进行显示:

Select pname ,price+10 from product;

条件查询:<>小于大于等

Between..and 显示在某一区间的值(含头含尾)

IN(set) 显示在in列表中的值,set 无重复.

Like ‘pattern’ 模糊查询like语句中,%代表0个或多个任意字符  _代表一个 字符

isNUll 判断是否为空;

逻辑运算符:and 多个条件同时成立

Or 多个条件任意成立

Not 不成立

 

 

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值