MySql学习笔记(一)

数据的存储:

                            javaSE:定义一个变量,它都存储在内存里面,

                            当程序执行完毕了,这个变量就从内存中消失了!

                      javaSE-->IO流程:针对文件进行存储

                                  1)永久保存,

                                  2)频繁的使用IO流对数据进行读写,执行效率低

                      数据库的软件:

                            1)对数据永久保存

                            2)执行效率高

                            3)方便维护和管理


Mysql:数据库软件
* 安装:
 请百度
* 卸载:
1.关闭mysql服务
1.手动关闭:我的电脑-->右键-->管理
2.cmd-->services.msc,打开服务面板
3.cmd-->net stop mysql。(注意获取cmd管理员权限)
2.卸载
3.删除数据存储文件
* 找到mysql的安装目录。中my.ini文件
datadir目录,删除

* 使用:
* 登陆数据库:
cmd-->mysql -uroot -p你自己的密码

* 服务:系统后台进程
* 启动服务: net start mysql
* 停止服务: net stop mysql
* 配置:
修改mysql的密码步骤:
1) 停止mysql服务 运行输入services.msc 停止mysql服务
或者 cmd --  net stop mysql
2) 在cmd下 输入 mysqld --skip-grant-tables 启动服务器 光标不动 (不要关闭该窗口)
3) 新打开cmd 输入mysql -u root -p 不需要密码 
use mysql;
update user set password=password('abc') WHERE User='root';
4) 关闭两个cmd窗口 在任务管理器结束mysqld 进程 
5) 在服务管理页面 重启mysql 服务

 SQL:结构化查询语言
* 概念:通过sql语言可以操作所有的关系型数据库。每种数据库之间会存在差异,称为 "方言"

* sql分类:
DDL(Data Definition Language):数据定义语言,用来定义数据库对象:库、表、列等;
DML(Data Manipulation Language):数据操作语言,用来定义数据库记录(增、删、改)
DCL(Data Control Language):数据控制语言,用来定义访问权限和安全级别;
DQL(Data Query Language):数据查询语言,用来查询记录(数据)。




* DDL:操作数据库 和 表
* 操作数据库:
* 创建:create database 数据库名称;
* 删除:drop database 数据库名称;
* 修改:ALTER DATABASE mydb1 CHARACTER SET 要修改的字符集名称
* 查询:show databases; -- 查询所有数据库的名称
show create database 数据库名称; -- 查询创建数据库语句

* 操作表:
* 创建:
* 列的数据类型:
* int:整型 id int,
* double:浮点型,例如double(5,2)表示最多5位,其中必须有2位小数,即最大值为999.99;
money double(5,2)
char:固定长度字符串类型;
name char(10) "张三"
* varchar:可变长度字符串类型;
name varchar(10) "张三"

text:字符串类型;存大格式的文本 比如存个小说 一般不用
blob:字节类型;存字节类型的数据  比如电影字节  图片字节 但是一般不会把字节数据存到数据库当中
date:日期类型,格式为:yyyy-MM-dd;
time:时间类型,格式为:hh:mm:ss
datetime:日期时间类型   yyyy-MM-dd hh:mm:ss
* timestamp:时间戳类型 yyyy-MM-dd hh:mm:ss
* 如果该类型的字段不给赋值,则默认当前时间

* 语法:
create table 表名(
列名1 类型1,
列名2 类型2,
...
列名n 类型n

);

create table student(
sname varchar(20),
age int,
gender varchar(6)
);



* 删除:drop table 表名;
* 修改:
1. 修改之添加列:给stu表添加classname列:
ALTER TABLE stu ADD (classname varchar(100));
2. 修改之修改列类型:修改stu表的gender列类型为CHAR(2):
ALTER TABLE stu MODIFY gender CHAR(2);
3. 修改之修改列名:修改stu表的gender列名为sex:
ALTER TABLE stu change gender sex CHAR(2);
4. 修改之删除列:删除stu表的classname列:
ALTER TABLE stu DROP classname;
5. 修改之修改表名称:修改stu表名称为student:
ALTER TABLE stu RENAME TO student;



* 查询:show tables; -- 查询该数据库下所有表名称
desc 表名; -- 查询表结构
* 注意:操作表之前,应该先选择一个数据库使用:use 数据库名称;




* DML:操作表中的数据
* 增:
* 语法:
* insert into 表名(列名1,列名2,...) values(值1,值2,....);
* 注意:如果表的所有列都添加值,则列名可以省略

insert into stu(sname,age) values("lisi",23);
insert into stu(sname,age,sex) values("zhangsan",23,'1');
insert into stu values("ww",23,'2');
* 删:
* 语法:
* delete from 表名 [where 条件];
* truncate table 表名;-- 删除所有记录
* 先删除表,再创建表。

delete from stu where sname = 'lisi'

* 改:
* 语法:
* update 表名 set 列名1 = 值1 , 列名2 = 值2... [where 条件]

update stu set sex = "1" where sname = "lisi";

update 
customer 
set 
money = 500000
where 
id = xxx;

* DQL:查询
* 语法:
SELECT 
selection_list /*要查询的列名称*/
FROM 
table_list /*要查询的表名称*/
WHERE 
condition /*行条件*/
GROUP BY 
grouping_columns /*对结果分组*/
HAVING 
condition /*分组后的行条件*/
ORDER BY 
sorting_columns /*对结果分组*/
LIMIT 
offset_start, row_count /*结果限定*/



* 条件查询:where 子句
=、!=、<>(不等于)、<、<=、>、>=;
BETWEEN…AND;  在什么范围之间
IN(set);
IS NULL;为空
IS NOT NULL 不为空
AND; 并且
OR;   或者
NOT;非

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章