數據庫(Database)是按照數據結構來組織、存儲和管理數據的倉庫,
每一個數據庫都有一個或多個不一樣的API用於建立,訪問,管理,搜索和複製所保存的數據。
咱們也能夠將數據存儲在文件中,可是在文件中讀寫數據速度相對較慢。
因此,如今咱們使用關係型數據庫管理系統(RDBMS)來存儲和管理的大數據量。所謂的關係型數據庫,是創建在關係模型基礎上的數據庫,藉助於集合代數等數學概念和方法來處理數據庫中的數據。
RDBMS即關係數據庫管理系統(Relational Database Management System)的特色:
1.數據以表格的形式出現
2.每行爲各類記錄名稱
3.每列爲記錄名稱所對應的數據域
4.許多的行和列組成一張表單
5.若干的表單組成databasemysql
MySQL 是最流行的關係型數據庫管理系統,在WEB應用方面 MySQL 是最好的RDBMS(Relational Database Management System:關係數據庫管理系統)應用軟件之一。
MySQL 是一個關係型數據庫管理系統,由瑞典 MySQL AB 公司開發,目前屬於 Oracle 公司。MySQL 是一種關聯數據庫管理系統,關聯數據庫將數據保存在不一樣的表中,而不是將全部數據放在一個大倉庫內,這樣就增長了速度並提升了靈活性。linux
MySQL 是開源的,因此你不須要支付額外的費用。。
MySQL 使用標準的SQL數據語言形式。
MySQL 能夠運行於多個系統上,而且支持多種語言。這些編程語言包括C、C++、Python、Java、Perl、PHP、Eiffel、Ruby和Tcl等。
MySQL 對PHP有很好的支持,PHP是目前最流行的Web開發語言。
MySQL 支持大型數據庫,支持5000萬條記錄的數據倉庫,32位系統表文件最大可支持4GB,64位系統支持最大的表文件爲8TB。
如今的MariaDb和MySQL是同一我的寫的。二者語法並無太多的出入。sql
方法一:yum直接安裝數據庫
[root@centos6 ~]# yum install mysql mysql-server -y
方法二:編譯安裝編程
[root@centos6 ~]# groupadd -g 36 -r mysql [root@centos6 ~]# useradd -u 36 -r -g mysql -m -d /app/dbdata -s /sbin/nologin mysql
[root@centos6(nanyibo) ~]# pvcreate /dev/sda6 [root@centos6(nanyibo) ~]# vgcreate vgmysql /dev/sda6 [root@centos6(nanyibo) ~]# lvcreate -l +100%FREE -n lvmysql vgmysql [root@centos6(nanyibo) ~]# mkfs.ext4 /dev/vgmysql/lvmysql [root@centos6(nanyibo) ~]# vim /etc/fstab /dev/vgmysql/lvmysql /app/dbdata ext4 defaults 0 0 [root@centos6(nanyibo) ~]# mount -a [root@centos6(nanyibo) ~]# chown mysql.mysql /app/dbdata [root@centos6(nanyibo) ~]# chmod 700 /app/dbdata
[root@centos6 ~]# tar -xvf mariadb-10.2.14-linux-x86_64.tar.gz -C /usr/local/ [root@centos6 ~]# cd /usr/local/ [root@centos6 local]# ln -sv mariadb-10.2.14-linux-x86_64 mysql
[root@centos6 mysql]# vim /etc/mysql/my.cnf [mysqld] datadir = /app/dbdata # innodb_file_per_table = on #每個數據和表都會生成一個文件 skip_name_resolve = on #這個參數是禁止域名解析,默認off
[root@centos6 mysql]# scripts/mysql_install_db --datadir=/app/dbdata --user=mysql
[root@centos6 mysql]# cp support-files/mysql.server /etc/init.d/mysqld [root@centos6 mysql]# chkconfig --add mysqld [root@centos6 mysql]# chkconfig mysqld on [root@centos6 mysql]# service mysqld restart
[root@centos6 ~]# vim /etc/profile.d/mage.sh export PATH=/usr/local/mysql/bin:$PATH [root@centos6 ~]# source /etc/profile.d/mage.sh
[root@centos6 ~]# mysql_secure_installation
CREATE DATABASE 數據庫名;#不區分大小寫 create database test;
drop database <數據庫名>; drop database test;
MariaDB [(none)]> use test; Database changed
查看數據庫vim
MariaDB [none]> show databases;
建立數據表centos
create table table_name (column_name column_type); MariaDB [test]> create table student (id tinyint unsigned primary key, name varchar(20) not null, age tinyint unsigned,sex char(1) default "m" ); Query OK, 0 rows affected (0.05 sec) MariaDB [test]> desc student;
設置主鍵的方法:
a. 直接設置數據結構
CREATE TABLE student( sid INT PRIMARY KEY, sname VARCHAR(30) );
b. constraint 約束app
CREATE TABLE test( id INT, NAME VARCHAR(20), CONSTRAINT pk_id PRIMARY KEY(id));
c. 添加主鍵約束編程語言
CREATE TABLE teacher( tid INT, tname VARCHAR(50) ); ALTER TABLE teacher ADD CONSTRAINT pk_tid PRIMARY KEY(tid);
d. 聯合主鍵 把兩列設置成一個主鍵
CREATE TABLE book( bid INT, bname VARCHAR(100), author VARCHAR(30), CONSTRAINT pk_bid_bname PRIMARY KEY(bid,bname) );
drop table tablename; MariaDB [test]> drop table student;
INSERT INTO table_name ( field1, field2,...fieldN ) VALUES ( value1, value2,...valueN ); MariaDB [test]> insert into student values (1,'liumou','18768896428',22,default);
SELECT column_name,column_name FROM table_name [WHERE Clause] [LIMIT N] MariaDB [test]> select name,age from student where sex='m' limit 5;
UPDATE table_name SET field1=new-value1, field2=new-value2 [WHERE Clause] MariaDB [test]> update student set phone='18438613802' where id=2;
能夠同時更新一個或多個字段。
能夠在 WHERE 子句中指定任何條件。
能夠在一個單獨表中同時更新數據。
DELETE FROM table_name [WHERE Clause] MariaDB [test]> delete from student where id=1;
若是沒有指定 WHERE 子句,MySQL 表中的全部記錄將被刪除。
你能夠在 WHERE 子句中指定任何條件
您能夠在單個表中一次性刪除記錄。
SELECT field1, field2,...fieldN FROM table_name WHERE field1 LIKE condition1 [AND [OR]] filed2 = '%char%' MariaDB [hellodb]> select * from students where name like 'L%';
能夠在 WHERE 子句中指定任何條件。能夠在 WHERE 子句中使用LIKE子句。可使用LIKE子句代替等號 =。LIKE 一般與 % 一同使用,相似於一個元字符的搜索。可使用 AND 或者 OR 指定一個或多個條件。能夠在 DELETE 或 UPDATE 命令中使用 WHERE...LIKE 子句來指定條件。