python创建数据库表_Python 操作数据库(1)SQL基础
一、數據庫
關系型數據庫
常見的關系型數據庫:SQL Server、MySql、MariaDB、SQLite、ORACLE、PostgreSQL等
非關系型數據庫
常見的非關系型數據看:MongoDB、HBASE、redis、CouchDB、Neo4j、Cassandra、memcached
非關系型數據庫又分為:1. 文檔型、 2.key-value型、3.列式數據庫、圖形數據庫
二、 MySql
1. 什么是mysql
典型的關系型數據庫 ([Mysql](https://baike.baidu.com/item/mySQL/471251?fr=aladdin))
?
2. mysql 基礎
(1) 安裝配置
~~~~ 安裝社區版 5.7
(2)圖形化管理工具
phpAdmin 、Navticat
3.語法基礎
DDL (Data Define Language)
CREATE 創建表/數據庫
ALTER創建表/數據庫
DROP刪除表/數據庫
DML (Data Manage Language)
INSERT
UPDATE
DELETE
SELECT
基礎:
創建數據庫和使用數據庫:
- CREATE DATABASE mydatabease ;
- USE mydatabase;
查看已有的數據庫:
- SHOW DATABASES;
創建學生表格:
CREATE TEABLE `students` (
`id` INT NOT NULL AUTO_INCRMENT,
`name` VARCHAR(200) NOT NULL
)
常見類型:
- int、char、varchar、datetime
- char、varchar都表示字符串,但char必須占用一定空間,例如200,char一定占滿200空間,不管它實際多少字符
- 但varchar只占據實際的字符數量的空間,只表示上限,更加節省空間,一般推薦varchar。
- datetime表示 日期+時間
分析學生表的字段:
id: 學生的ID
name: 學生的名稱
nickname:學生的昵稱
sex:性別
in_time:入學時間
-- id: 學生的ID
-- name: 學生的名稱
-- nickname:學生的昵稱
-- sex:性別
-- in_time:入學時間
CREATE TABLE `stuents` (
`id` INT NOT NULL AUTO_INCREMENT PRIMARY KEY,
`name` VARCHAR(20) NOT NULL,
`nickname` VARCHAR(20) NULL,
`sex` CHAR(1) NULL,
`in_time` DATETIME NULL
);
插入數據
語法:INSERT INTO table_references VALUE(S)…
創建表格時指定編碼
CREATE TABLE `stuents2` (
`id` INT NOT NULL AUTO_INCREMENT PRIMARY KEY,
`name` VARCHAR(20) NOT NULL,
`nickname` VARCHAR(20) NULL,
`sex` CHAR(1) NULL,
`in_time` DATETIME NULL
)DEFAULT CHARSET 'UTF8'; #指定編碼
插入一條數據
INSERT INTO `stuents2` VALUE (2,'張三','三豐','男',now());
指定插入字段的名稱(使得能自增)不需指定id
INSERT INTO `stuents2` (`name`,`nickname`,`sex`,`in_time`) VALUE ('李四','四小','男',now());
tips : 字段名稱使用反引號" ` “, 實際內容使用單引號” ’ "
插入多行 :
INSERT INTO `stuents2` (`name`,`nickname`) VALUES
('李四1','四小x'),
('李四2','四小2'),
('李四3','四小3'),
('李四4','四小4')
;
查詢數據
語法格式: 有順序要求
SELECT
select_expr,...
FROMtable_references
[WHERE where_definition]
[GROUP_BY {col_name|expr|position}]
[HAVING where_definition]
[ORRDER_BY {col_name|expr|position}
[ASE|DESC],...]
[LIMIT {[offset,] row_count}]
SELECT `id`,`name`,`nickname` FROM `stuents2` WHERE `sex`='男' ORDER BY DESC LIMIT 1,2;
修改數據
語法:
UPDATE table_references
SET col_name1 = expr1 [,col_name2 = expr2]
[WHERE where_definition]
修改性別
UPDATE `students2` SET `sex`='女' WHERE `sex`='男';
修改時必須注意是否要添加WHERE條件;
如果不添加WHERE,將會修改相應的全部內容。
謹慎操作
刪除數據
語法: 必須注意是否要限定刪除范圍
DELETE FROM table_name
[WHERE where_definition]
DELETE FROM `students2` WHERE `sex`='男';
其他語法
比較不常用的:
新建索引(CREATE INDEX)
修改表(ALTER TABLE)
刪除數據庫、表、索引、視圖等(DROP)
…
實例1
設計新聞表
-- ID:新聞的唯一標識
-- title:新聞標題
-- types:新聞類型
-- content:新聞內容
-- created_at : 發布時間
-- image:縮略圖
-- author:作者
-- view_count:瀏覽量
-- is_valid:刪除標記
操作:
CREATE TABLE `news`(
`id` INT NOT NULL AUTO_INCREMENT,
`title` VARCHAR(200) NOT NULL,
`types` VARCHAR(20) NOT NULL,
`content` VARCHAR(2000) NOT NULL,
`created_at` DATETIME NULL,
`image` VARCHAR(300) NULL,
`author` VARCHAR(20) NULL,
`view_count` INT DEFAULT 0,
`is_valid` SMALLINT DEFAULT 1 , # 默認值,1為有效新聞,0為無效新聞
PRIMARY KEY(`id`)
)DEFAULT CHARSET 'UTF8';
** 別忘記語法格式、關鍵字
** LIMIT number1,number2 用法筆記
number1 是偏移量,從0開始
number2是每頁顯示的數量
假如要顯示第5頁的內容,并且每頁顯示5條。則 number1=4 * number2 + 1 = 4 * 5+1=21
總結
以上是生活随笔為你收集整理的python创建数据库表_Python 操作数据库(1)SQL基础的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: python绘制混淆矩阵_如何实现pyt
- 下一篇: python决策树 value_机器学习