数据库001

本文详细介绍了数据库(DB)和DBMS,包括MySQL的安装、配置、操作、DQL查询语言的应用,以及PHPMyAdmin的安装与使用。从拆卸到重启,再到数据库操作和SQL查询技巧,适合数据库初学者和开发者参考。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

数据库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体积小

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值