python创建数据库表_Python 操作数据库(1)SQL基础

本文介绍了关系型数据库如MySQL与非关系型数据库如MongoDB的区别,并详细讲解了MySQL的基础操作,包括安装配置、数据类型、表的创建、数据的增删改查等。此外,还提到了数据库设计示例,如创建新闻表。
摘要由CSDN通过智能技术生成

一、数据库

关系型数据库

常见的关系型数据库: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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值