1. 程式人生 > >Python Day40 初識數據庫

Python Day40 初識數據庫

host sch python 對數 nts latin 自啟動 maria 下載

一、數據庫服務器、數據管理系統、數據庫、表與記錄的關系

  記錄:多個字段的信息組成一條記錄,即文件中的一行內容

  表:student,scholl,class_list(即文件)

  數據庫:oldboy_stu(即文件夾)

  數據庫管理系統:如mysql(是一個軟件)

  數據庫服務器:一臺計算機(對內存要求比較高)

總結:

數據庫服務器---運行--->數據庫管理軟件

數據庫管理軟件--->管理--->數據庫

數據庫---組織--->表,即文件夾---組織--->文件

表---存放--->多條記錄,即文件---存放--->多行內容

二、mysql軟件基本管理

1. 啟動查看

[root@egon ~]# systemctl start mariadb #啟動
[root@egon ~]# systemctl enable mariadb #設置開機自啟動
Created symlink from /etc/systemd/system/multi-user.target.wants/mariadb.service to /usr/lib/systemd/system/mariadb.service.
[root@egon ~]# ps aux |grep mysqld |grep -v grep #查看進程,mysqld_safe為啟動mysql的腳本文件,內部調用mysqld命令
mysql 3329 0.0 0.0 113252 1592 ? Ss 16:19 0:00 /bin/sh /usr/bin/mysqld_safe --basedir=/usr mysql 3488 0.0 2.3 839276 90380 ? Sl 16:19 0:00 /usr/libexec/mysqld --basedir=/usr --datadir=/var/lib/mysql --plugin-dir=/usr/lib64/mysql/plugin --log-error=/var/log/mariadb/mariadb.log --pid-file=/var/run/mariadb/mariadb.pid --socket=/var/lib/mysql/mysql.sock [root@egon
~]# netstat -an |grep 3306 #查看端口 tcp 0 0 0.0.0.0:3306 0.0.0.0:* LISTEN [root@egon ~]# ll -d /var/lib/mysql #權限不對,啟動不成功,註意user和group drwxr-xr-x 5 mysql mysql 4096 Jul 20 16:28 /var/lib/mysql

2. 登錄,設置密碼

初始狀態下,管理員root,密碼為空,默認只允許從本機登錄localhost
設置密碼
[root@egon ~]# mysqladmin -uroot password "123"        設置初始密碼 由於原密碼為空,因此-p可以不用
[root@egon ~]# mysqladmin -uroot -p"123" password "456"        修改mysql密碼,因為已經有密碼了,所以必須輸入原密碼才能設置新密碼

命令格式:
[root@egon ~]# mysql -h172.31.0.2 -uroot -p456
[root@egon ~]# mysql -uroot -p
[root@egon ~]# mysql                    以root用戶登錄本機,密碼為空

3. 忘記密碼

方法一:刪除授權庫mysql,重新初始化

[root@egon ~]# rm -rf /var/lib/mysql/mysql #所有授權信息全部丟失!!!
[root@egon ~]# systemctl restart mariadb
[root@egon ~]# mysql

方法二:啟動時,跳過授權庫

[root@egon ~]# vim /etc/my.cnf    #mysql主配置文件
[mysqld]
skip-grant-table
[root@egon ~]# systemctl restart mariadb
[root@egon ~]# mysql
MariaDB [(none)]> update mysql.user set password=password("123") where user="root" and host="localhost";
MariaDB [(none)]> flush privileges;
MariaDB [(none)]> \q
[root@egon ~]# #打開/etc/my.cnf去掉skip-grant-table,然後重啟
[root@egon ~]# systemctl restart mariadb
[root@egon ~]# mysql -u root -p123 #以新密碼登錄

4. 在windows下,為mysql服務指定配置文件(強調:配置文件中的註釋可以有中文,但是配置項中不能出現中文

#在mysql的解壓目錄下,新建my.ini,然後配置
#1. 在執行mysqld命令時,下列配置會生效,即mysql服務啟動時生效
[mysqld]
;skip-grant-tables
port=3306
character_set_server=utf8
default-storage-engine=innodb
innodb_file_per_table=1


#解壓的目錄
basedir=E:\mysql-5.7.19-winx64
#data目錄
datadir=E:\my_data #在mysqld --initialize時,就會將初始數據存入此處指定的目錄,在初始化之後,啟動mysql時,就會去這個目錄裏找數據



#2. 針對客戶端命令的全局配置,當mysql客戶端命令執行時,下列配置生效
[client]
port=3306
default-character-set=utf8
user=root
password=123

#3. 只針對mysql這個客戶端的配置,2中的是全局配置,而此處的則是只針對mysql這個命令的局部配置
[mysql]
;port=3306
;default-character-set=utf8
user=egon
password=4573


#!!!如果沒有[mysql],則用戶在執行mysql命令時的配置以[client]為準

my.ini

三、初識sql語句

有了mysql這個數據庫軟件,就可以將程序員從對數據的管理中解脫出來,專註於對程序邏輯的編寫

mysql服務端軟件即mysqld幫我們管理好文件夾以及文件,前提是作為使用者的我們,需要下載mysql的客戶端,或者其他模塊來連接到mysqld,然後使用mysql軟件規定的語法格式去提交自己命令,實現對文件夾或文件的管理。該語法即sql語句

#1. 操作文件夾
        增:create database db1 charset utf8;
        查:show databases;
        改:alter database db1 charset latin1;
        刪除: drop database db1;


#2. 操作文件
    先切換到文件夾下:use db1
        增:create table t1(id int,name char);
        查:show tables
        改:alter table t1 modify name char(3);
              alter table t1 change name name1 char(2);
        刪:drop table t1;
    

#3. 操作文件中的內容/記錄
        增:insert into t1 values(1,egon1),(2,egon2),(3,egon3);
        查:select * from t1;
        改:update t1 set name=sb where id=2;
        刪:delete from t1 where id=1;

        清空表:
            delete from t1; #如果有自增id,新增的數據,仍然是以刪除前的最後一樣作為起始。
            truncate table t1;數據量大,刪除速度比上一條快,且直接從零開始,

            auto_increment 表示:自增
            primary key 表示:約束(不能重復且不能為空);加速查找

Python Day40 初識數據庫