美文网首页Python程序员
数据库与表的增删改查

数据库与表的增删改查

作者: 叫我老村长 | 来源:发表于2018-08-07 20:45 被阅读3次

掌握三大数据库: mysql redis mongoDb。

mysql:基于内存的常用的数据库。
redis:适用于分布式,爬虫。
mongoDb:文档存储,基于磁盘。

mysql特点:严谨、高效,安全

书写规范:

字段等小写
sercode语句大写

表的操作(crud)

c创建
u更新
r读信息
d删除

开启数据库

sudo service mysql start    开启
(mysql-sever 服务端    mysql-client 客户端)
mysql -u root -p       -p密码,输入密码  exit退出。
sudo service mysql stop   停止
sudo service mysql restart

允许远程连接

1.找到mysql配置文件并做如下修改:允许远程连接

sudo vi /etc/mysql/mysql.conf.d/mysqld.cnf

将 bind-address=127.0.0.1 注释掉

或则修改为bind-address= 0.0.0.0

首先登录系统

    mysql -h ip -u root -p

2.授权root用户

GRANT ALL PRIVILEGES ON . TO 'root'@'%' IDENTIFIED BY 'youpassword' WITH GRANT OPTION;

.改.
%代表所以ip,填写固定ip11.11.111
ip查看 ifconfig

3.刷新权限

    FLUSH PRIVILEGES;

mysqld.cnf里面的密码:ZheDht1uoBqNJFd9
show databases;
use mysql
show tables;显示mysql里面表格
desc user;看结构
select user,host from user;查询语句

4.如果要修改,先使用默认账号登录然后输入一下命令:

update mysql.user set authentication_string=password('password') where user='root'and Host = 'localhost';

5.修改成功后重启便可以登录便可以使用账号密码登录
删除mysql

sudo apt-get autoremove --purge mysql-server-5.7 sudo apt-get remove mysql-server sudo apt-get autoremove mysql-server sudo apt-get remove mysql-common

清理数据 dpkg -l |grep ^rc|awk '{print $2}' |sudo xargs dpkg -P

创建数据库

1.CREATE DATABASE class1804;
SHOW DATABASES;

2.CREATE SCHEMA class18042;
SHOW DATABASES;

创建指定字符集的数据库

CREATE DATABASE bc DEFAULT charset=utf8;
CREATE SCHEMA bc1 DEFAULT charset=utf8;
SHOW DATABASES;
不存在就创建
CREATE DATABASE IF NOT EXISTS 数据库名称
ERROR 1007 (HY000): Can't create database 'bc1'; database exists
mysql>
创建重名 报错
CREATE SCHEMA IF NOT EXISTS bc1 DEFAULT charset=utf8;
不报错

查看当前所在数据库

select database();
结过:mysql

选择数据

use bc1
select database();
结果bc1

CREATE SCHEMA bc1 DEFAULT charset=utf8;
CREATE SCHEMA IF NOT EXISTS bc1 DEFAULT charset=utf8;

查看当前数据库编码格式

show variables like 'character_set_database';


CREATE DATABASE bc DEFAULT charset=utf8;
charset小写

DEFAULT默认
select user,host from user;

050 (42S01): Table 'customers' already exists

ALTER TABLE vendors ADD (vend_age INT NOT NULL DEFAULT 10,class VARCHAR(5) NOT NULL DEFAULT '1804');
插多字段

时间戳

时间戳是指格林威治时间1970年01月01日00时00分00秒(北京时间1970年01月01日08时00分00秒)起至现在的总秒数。通俗的讲, 时间戳是一份能够表示一份数据在一个特定时间点已经存在的完整的可验证的数据。 它的提出主要是为用户提供一份电子证据, 以证明用户的某些数据的产生时间。 在实际应用上, 它可以使用在包括电子商务、 金融活动的各个方面, 尤其可以用来支撑公开密钥基础设施的 “不可否认” 服务。
转换秒10位。毫秒13位。

数据库引擎

服务器拿到信息以后让引擎执行。
默认存储引擎:InnoDb
show VARIABLES LIKE deefault_storage_engine;
显示默认支持的引擎。
SET default_storage_engine
设置默认引擎

MySQL表的操作

创建表

CREATE TABLE IF NOT EXISTS customers ( userid int NOT NULL AUTO_INCREMENT, name char(50) NOT NULL, address char(200) NOT NULL, email char(50) NOT NULL, PRIMARY KEY(userid) );

查看表

SHOW TABLES

查看表详细信息

SHOW CREATE TABLE table_name

查看表结构(DESCRIBE)

DESC 数据表名;

注意:
AUTO_INCREMENT自增
字符串就不用自增了

char(50)属于定长,不足50进位,达到50,浪费资源。
VARCHAR 不浪费资源 不定长

PRIMARY KEY(userid)
主键:确保数据的唯一性。书写时,每个数据独占一行,用,进行分开。
A表的主键在B表做外键。
A从表 B主表

更新表(ALTER TABLE)

添加新字段(列)

单个:
ALTER TABLE vendors ADD vend_gender INT NOT NULL DEFAULT 0;

多个:
ALTER TABLE ALTER TABLE vendors ADD (vend_age INT NOT NULL DEFAULT 10,class VARCHAR(5) NOT NULL DEFAULT '1804');

修改字段名(列)

ALTER TABLE 表名 CHANGE 字段名 新字段名 数据类型;

ALTER TABLE vendors CHANGE vend_age new int;
在不改变的情况下修改(类型,约束等)
ALTER TABLE vendors CHANGE modify 字段名(老的) 类型 约束 属性;

删除字段名(列)

ALTER TABLE vendors DROP old;

修改表名

ALTER TABLE oldtable RENAME AS newtable;

RENAME TABLE 数据表名1 To 数据表名2
RENAME TABLE vendors TO vendorss;

删除表

DROP TABLE [IF EXISTS] 数据表名;

复制表

CREATE TABLE [IF NOT EXISTS] 数据表名 LIKE 源数据表名;


除MySQL强制实施的规则外,应该坚持的几个普遍认可的最好习惯为:

不更新主键列中的值;
不重用主键列的值;
不在主键列中使用可能会更改的值。(例如,如果使用一个 名字作为主键以标识某个供应商,当该供应商合并和更改其名字时,必须更改这个主键。)

书写规范:default默认值放 在限制之后。
表id要写数据类型 int。
int格式后面可以不写约束。

三大数据库字段类型:数字、字符串、日期

CREATE TABLE customers ( userid int NOT NULL AUTO_INCREMENT PRIMARY KEY, name char(50) NOT NULL, address char(200) NOT NULL, email char(50) NOT NULL);

相关文章

  • SQL查询结构总结

    SQL 增删改查 对数据库有修改的操作是:增删改 增 insert into 表名 values(); 删 del...

  • SQL语句

    数据库的增删改查 数据表的增删改查 表内记录的增删改查

  • JAEE学习笔记(17)mysql

    MySQL数据库 数据库(CURD -- 增删改查) 表(table)(CURD -- 增删改查) 数据(CURD...

  • SQL-增删改查

    从增山改查开始,增删改查都是从数据库,数据表,数据三个维度展开。 新增 新增数据库 CREATE DATABASE...

  • mysql

    mysql 增删改查数据库的增删改查: create drop alter show表结...

  • 关于python的list的增查删改

    说到增查删改,想起了数据库,我们在关系型数据库当中就会对表进行增查删改。 在python当中我们也可以对list进...

  • MYSQL数据库的增删改查

    MYSQL数据库的增删改查 一.对于库的增删改查 增create database 库名称;create data...

  • 数据库的增删改查

    数据库的CRUD:数据库的增删改查 表的CRUD 表记录的CRUD 一、数据库的CRUD 1.增 关键词: CRE...

  • mysql数据库的基本操作

    一、基本增删改查二、创建索引的几种方式三、单表查询四、连表查询 一、基本增删改查 1.数据库的增删改查 show ...

  • 2018-06-23 (数据库)

    /*表的增删改查增创建删除删除整张表改改变表名改变列名改变列类型查查询表结构查询表信息表数据的增删改查增插入指定列...

网友评论

    本文标题:数据库与表的增删改查

    本文链接:https://www.haomeiwen.com/subject/uajovftx.html