mysql使用表的_MySQL使用--表操作篇

查看表描述:

DESCRIBE MYTABLE;

创建表:

CREATE TABLE [IF NOT EXISTS]表名称(

列名称1 数据类型 [属性] [索引],

列名称2 数据类型 [属性] [索引],

列名称3 数据类型 [属性] [索引],….

)[表类型][表字符集];

修改表:

ALTER [IGNORE] TABLE tbl_name alter_spec [, alter_spec ...];

alter_specification:

ADD [COLUMN] create_definition [FIRST | AFTER column_name ]

or ADD INDEX [index_name] (index_col_name,...)

or ADD PRIMARY KEY (index_col_name,...)

or ADD UNIQUE [index_name] (index_col_name,...)

or ALTER [COLUMN] col_name {SET DEFAULT literal | DROP DEFAULT}

or CHANGE [COLUMN] old_col_name create_definition

or MODIFY [COLUMN] create_definition

or DROP [COLUMN] col_name

or DROP PRIMARY KEY

or DROP INDEX index_name

or RENAME [AS] new_tbl_name

or table_options

删除表:

DROP TABLE IF EXISTS `tbname`;

字段支持的类型:

1、数值型

整型(整数)

TINYINT :非常小的整型 1个字节 -128---127 0---255(无符号情况、无负数) UNSIGNED;

SMALLINT :较小的整型 2个字节 -32768-----32767 0------65535

MEDIUMINT :中等大小的整型 3个字节 0---------16777215

INT :标准的整数型 4个字节 -2147483648--------2147483647

BIGINT :大整数型 8个字节

浮点型(小数) 注意浮点数误差

float(M,D) 4字节 M位数,D小数点保留

double(M,D) 8字节

定点数decimal(M,D) M+2字节(精确,以字符串形式存,效率低需要转化)

2、字符型

char(m) 255 固定长度字符串

varchar(m) 255 可变长度

char(4) ‘ab’ 4个字节 删除空格

varchar(4)‘ab’ 3个字节(比预设多一个字节) 不删除空格

text 文本数据(文章) MEDIUMTEXT (二的二十四次方减一) LONGTEXT(二的三十二次方)

blob 保存二进制数据 照片、电影、压缩包 MEDIUMTEXT LONGTEXT(二的三十二次方)

ENUM 枚举 1个或2个字节

ENUM(“one”,“two”,“three”)----------------最多65535成员,一次只能用一个值

SET 集合 1,2,3,4,8个字节----------------------64----一次可以用多封集合中的值,中间用逗号分开

3、日期型

DATE YYY-MM-DD

TIME hh:mm:ss

DATETIME YYYY-MM-DD hh:mm:ss

TIMESTAMP YYYYMMDDhhmmss

YEAR YYYY

创建表示最好不要使用这些中的时间格式(php中时间戳1970-1-1 0:0:0)是一整数

用整数保存时间time(); int

数据字段属性:

1、unsigned  可以让空间增加一倍    0-255

只能用在数值型字段

2、zerofill

只能用在字符型字段,前导零, int(5)保证五位不足前面补零

该字段自动应用unsigned [,?n'saind]

3、AUTO_INCREMENT

只能是整数,数据每增加一条就会自动增1,字段的值是不容许重复

NULL 零 留空 情况自动增1

必须是唯一索引 primary key;

每个表都最好有一个id字段设置为自动增长的auto_increment

4、NULL和  NOT NULL

默认是空

NULL 值

将这个表的数据转为php程序的数据时,整数列有null如何转成0 ?

建议:在创建表示每个字段都不要插入空值

设置为 not null;

5、defaut缺省值

CREATE TABLE users(

id INT UNSIGNED NOT NULL AUTO_INCREMENT PRIMARY KEY,

name VARCHAR(30) NOT NULL DEFAULT ' ',

height DUOBLE(10,2) NOT NULL DEFAULT 0.00,

age INT NOT NULL DEFAULT '男',

)

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
在上一文章中,我们介绍了JDBC中的PreparedStatement和ResultSet类的使用。在本文中,我们将介绍Apache Commons DbUtils库中的QueryRunner类。 QueryRunner类是Apache Commons DbUtils库中的一个类,它封装了大量的JDBC操作,简化了JDBC编程的复杂度。使用QueryRunner类可以避免编写大量的JDBC代码,提高开发效率。 使用QueryRunner类需要引入以下依赖: ```xml <dependency> <groupId>commons-dbutils</groupId> <artifactId>commons-dbutils</artifactId> <version>1.7</version> </dependency> ``` 接下来我们来看一下如何使用QueryRunner类。 1. 建立连接 在使用QueryRunner类之前,需要先建立与数据库的连接。这可以通过JDBC中的DriverManager类来实现。例如: ```java Connection conn = DriverManager.getConnection(url, user, password); ``` 其中,url、user和password分别示数据库的URL、用户名和密码。 2. 执行SQL语句 QueryRunner类中提供了多个方法来执行SQL语句。其中,最常用的方法是query()和update()方法。 query()方法用于查询数据,它的使用方式如下: ```java QueryRunner qr = new QueryRunner(); String sql = "SELECT * FROM user WHERE id=?"; Object[] params = {1}; ResultSetHandler<List<User>> rsh = new BeanListHandler<>(User.class); List<User> userList = qr.query(conn, sql, rsh, params); ``` 其中,第一个参数conn示与数据库的连接,第二个参数sql示要执行的SQL语句,第三个参数rsh示查询结果的处理器,第四个参数params是一个数组,示SQL语句中的参数。 update()方法用于更新数据,它的使用方式如下: ```java QueryRunner qr = new QueryRunner(); String sql = "UPDATE user SET name=? WHERE id=?"; Object[] params = {"张三", 1}; qr.update(conn, sql, params); ``` 其中,第一个参数conn示与数据库的连接,第二个参数sql示要执行的SQL语句,第三个参数params是一个数组,示SQL语句中的参数。 3. 释放资源 在使用QueryRunner类完成数据库操作后,需要释放相应的资源,包括ResultSet、Statement和Connection等。这可以通过调用DbUtils类中的close()方法来实现。例如: ```java DbUtils.close(resultSet); DbUtils.close(statement); DbUtils.close(connection); ``` 4. 示例代码 下面是一个完整的示例代码,演示了如何使用QueryRunner类完成数据库操作: ```java import java.sql.Connection; import java.sql.DriverManager; import java.sql.SQLException; import java.util.List; import org.apache.commons.dbutils.QueryRunner; import org.apache.commons.dbutils.ResultSetHandler; import org.apache.commons.dbutils.handlers.BeanListHandler; public class QueryRunnerDemo { public static void main(String[] args) throws SQLException { String url = "jdbc:mysql://localhost:3306/test"; String user = "root"; String password = "123456"; Connection conn = DriverManager.getConnection(url, user, password); // 查询数据 QueryRunner qr = new QueryRunner(); String sql = "SELECT * FROM user WHERE id=?"; Object[] params = {1}; ResultSetHandler<List<User>> rsh = new BeanListHandler<>(User.class); List<User> userList = qr.query(conn, sql, rsh, params); for (User user : userList) { System.out.println(user); } // 更新数据 sql = "UPDATE user SET name=? WHERE id=?"; params = new Object[]{"张三", 1}; qr.update(conn, sql, params); conn.close(); } } ``` 以上就是QueryRunner类的使用方法。QueryRunner类封装了大量的JDBC操作,可以避免编写大量的JDBC代码,提高开发效率。同时,使用QueryRunner类也需要注意资源的释放,避免出现资源泄漏的情况。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值