数据库DB
数据库管理系统DBMS
共享文件系统型(access)
客服端/服务器端(mysql、oracle)
1、拆卸
拆卸链接
1、开始->拆卸,
2、安装的目录删除
3、c盘programData拆卸
2、安装
2.1windows下安装:
2.2mac下安装
mac版下载链接
安装链接
1、安装之后,需要配置一下,在mysql->bin->MySQLInstanceConfigure.exe文件
(存储引擎:事务型,非事务性)
2.3、ubuntu安装
参考
1、拆卸:
sudo apt-get remove --purge mysql-server mysql-client mysql-common
sudo apt-get autoremove
sudo apt-get autoclean
sudo rm -rf /var/lib/mysql
sudo reboot
2、重新安装
sudo apt-get --purge remove mysql-server mysql-common mysql-client
sudo apt-get install mysql-server mysql-common mysql-client
mysqladmin -u root password your-new-password
sudo /etc/init.d/mysql restart
或者
sudo apt-get install mysql-server
3、安装phpmyadmin
sudo apt-get install phpmyadmin
使用
mysql -h localhost -P 3306 -u root -p
会遇到问题,然后
sudo mysql
//进入mysql
mysql> SELECT user, authentication_string, plugin, host FROM mysql.user;
+------------------+-------------------------------------------+-----------------------+-----------+
| user | authentication_string | plugin | host |
+------------------+-------------------------------------------+-----------------------+-----------+
| root | | auth_socket | localhost |
| mysql.session | *THISISNOTAVALIDPASSWORDTHATCANBEUSEDHERE | mysql_native_password | localhost |
| mysql.sys | *THISISNOTAVALIDPASSWORDTHATCANBEUSEDHERE | mysql_native_password | localhost |
| debian-sys-maint | *ABA968D18E3A0B6DEB02F9D5FBDA21415A86977B | mysql_native_password | localhost |
+------------------+-------------------------------------------+-----------------------+-----------+
4 rows in set (0.00 sec)
3、开启关闭服务
管理员打开命令行:net stop mysql (Windows能用)
net start mysql
4、使用
先在自己打开的终端输入:
PATH="$PATH":/usr/local/mysql/bin
1、mysql有一个自带的终端,在开始->输入密码就行
2、使用windows的命令行: -p加密码中间不能有空格
mysql -h localhost -P 3306 -u root -p // host+主机名 Port user passwd
连接本机直接:mysql -u root -proot
退出:exit 或者Ctrl + C
4、数据库的操作:
mysql> show databases;
> use test; // 使用切换到这个库
> -> show tables; //查看当前数据库中有多少表
> show tables from sys; // 异库查表
> select database(); // 查看当前数据库名字
create table stuinfo( // 创建一个表
id int,
name varchar(20));
desc stuinfo; // 查看表结构
select * from stuinfo; // 查看表内容
insert into stuinfo(id , name) values(1,"join"); // 表中插入元素
update stuinfo set name="lilei" where id=1; //更新表中的行
delete from stuinfo where id=1; // 删除行
select version(); //查看数据库的版本
// 注释
*加内容
或者-- 加空格
5、DQL查询语言
5.1普通查询
select 查询内容 from 表名
可以查:字段、常量值、表达式、函数
查询出来的表是个虚表
1、查询一个表中多个字段,逗号隔开
use test; # 打开相应的库
mysql> select name,id,scores from score;
2、查询常量值
mysql> select 'yuwen';
3、查询表达式,相当于计算!
mysql> select 100%3;
4、查询函数 有小括号标识
select version();
5、给字段起别名, (as、空格、别名中间有特殊字符使用双引号引起来)
字段汉字不加引号
连接查询时候:查询的字段有重名起别名方便
如下3种方式:
mysql> select name as 课程名,scores as 及格分 from score;
mysql> select name 课程名,scores 及格分 from score;
mysql> select name as "名字# 空格,呵呵",score as "out put" from score;
6、去重distinct
把要查询的字段只显示一次,而不是每行都显示
mysql> select distinct name from score;
7、sql中的+符号,只是一个运算符!
加号两边如果都是数值型,就对
如果两边有一边是字符串,如果字符串能转成数值,就转成数字,如果不能转就变成0,
如果一边是null,则结果还是null,黑洞,加谁都没用!
8、链接函数concat
一边是null时候也是黑洞直接还是空
mysql> select concat(name,scores)as 课程名及格分 from score;
mysql> select concat(id,scores) as 看看 from score;
9、练习题
拼接多个字段(使用,隔开),字段有NULL,起别名put_put
下面一个把值为null的字段scores其中的null换成0,进行concat拼接函数的拼接操作
mysql> select ifnull(scores,0) as new,scores from score;
+-----+--------+
| new | scores |
+-----+--------+
| 60 | 60 |
| 60 | 60 |
| 60 | 60 |
| 60 | 60 |
| 60 | 60 |
| 60 | 60 |
| 60 | 60 |
| 60 | 60 |
| 60 | 60 |
| 0 | NULL |
+-----+--------+
mysql> select concat
-> (id,name,ifnull(scores,888))as 看看
-> from score;
+-------------+
| 看看 |
+-------------+
| 1yuwen60 |
| 2shuxue60 |
| 3yingyu60 |
| 4gym60 |
| 5zhengzhi60 |
| 6lishi60 |
| 7dili60 |
| 8yuwen60 |
| 9yuwen60 |
| 10huaxue888 |
+-------------+
5.2条件查询
语法:
select
from
where
条件子句3种:
1、简单条件运算符:< = !=、<>、>
2、逻辑表达式:&&、 || 、! 、and、 or、 not
作用:用于连接条件表达式
3、模糊查询:
between and,包含两侧,且左小右大
in,like,is null
eg1
mysql> select name,scores
-> from score
-> where scores>70;
+-------+--------+
| name | scores |
+-------+--------+
| yuwen | 80 |
| yuwen | 80 |
| yuwen | 80 |
+-------+--------+
eg2模糊查询
通配符
% 任意多个字符
_ 任意一个字符
转义字符:前面加\ 反斜杠就好了
mysql> select *
-> from score
-> where name like '%y%';
+------+--------+--------+
| id | name | scores |
+------+--------+--------+
| 1 | yuwen | 80 |
| 3 | yingyu | 60 |
| 4 | gym | 60 |
| 8 | yuwen | 80 |
| 9 | yuwen | 80 |
+------+--------+--------+
转义字符使用两种方式:
mysql> select *
-> from score
-> where name like '_____\_%';
+------+-----------+--------+
| id | name | scores |
+------+-----------+--------+
| 5 | zheng_zhi | 60 |
+------+-----------+--------+
1 row in set (0.00 sec)
mysql> select *
-> from score
-> where name like '_____$_%' escape '$';
+------+-----------+--------+
| id | name | scores |
+------+-----------+--------+
| 5 | zheng_zhi | 60 |
+------+-----------+--------+
eg3
mysql> select *
from score
where scores between 70 and 90;
+------+-------+--------+
| id | name | scores |
+------+-------+--------+
| 1 | yuwen | 80 |
| 8 | yuwen | 80 |
| 9 | yuwen | 80 |
+------+-------+--------+
eg4,in后面的字段有引号,不然出错
mysql> select name,scores
-> from score
-> where name in('yuwen','shuxue');
+--------+--------+
| name | scores |
+--------+--------+
| yuwen | 80 |
| shuxue | 60 |
| yuwen | 80 |
| yuwen | 80 |
+--------+--------+
eg5 is null 和is not null
mysql> select *
-> from score
-> where scores is null;
+------+--------+--------+
| id | name | scores |
+------+--------+--------+
| 10 | huaxue | NULL |
+------+--------+--------+
eg6 安全等于<=> 和上面那个is一样的效果
判断null,不能使用=,要用关键字is,但是可以使用安全等于:<=>做判断
mysql> select *
-> from score
-> where scores <=> null;
+------+--------+--------+
| id | name | scores |
+------+--------+--------+
| 10 | huaxue | NULL |
+------+--------+--------+
问:下面两条查询语句结果是否一样?
不一样,因为score这个字段里有null,使用like关键字查询不出来!
mysql> select *
-> from score;
mysql> select *
-> from score
-> where scores like '%%'
6、总结
数据库的好处
1、持久化数据到本地
2、结构化查询
微软的sql server只能安装到Windows系统上
mysql体积小